لا توجد طريقة لـ docker Discourse على جهاز Mac بشريحة M1 حاليًا، أليس كذلك؟
عند تشغيل d/boot_dev --init، واجهت هذا الخطأ:
ActiveRecord::NoDatabaseError: لم نتمكن من العثور على قاعدة البيانات الخاصة بك: discourse_development. يمكن العثور على تكوينات قاعدة البيانات المتاحة في config/database.yml. (ActiveRecord::NoDatabaseError)
لست متأكدًا مما إذا كان هذا خطأ في البرنامج النصي boot_dev، أو ما إذا كان من المفترض إنشاء قاعدة بيانات discourse_development في مكان آخر. في كلتا الحالتين، تمكنت من إصلاحه بهذا التغيير:
diff --git a/bin/docker/boot_dev b/bin/docker/boot_dev
index 89fdcf6f65..0e9c5ce7d5 100755
--- a/bin/docker/boot_dev
+++ b/bin/docker/boot_dev
@@ -122,6 +122,7 @@ echo "pnpm install..."
if [ "${initialize}" = "initialize" ]; then
echo "Migrating database..."
+ "${SCRIPTPATH}/rake" db:create
"${SCRIPTPATH}/rake" db:migrate
RAILS_ENV=test "${SCRIPTPATH}/rake" db:migrate
بعد ذلك، مرت عملية الإعداد بشكل صحيح، باتباع التعليمات في المنشور الأصلي.
أنا لست على دراية كافية بقاعدة كود Discourse لمعرفة ما إذا كان هذا هو الإصلاح الصحيح، ولكني سعيد بتقديم طلب سحب (PR) إذا كان ذلك سيساعد. ![]()
نعم، بالتأكيد. يرجى إنشاء طلب سحب (PR) وربطه هنا. شكرًا!
هل نجحت في تشغيله؟
واجهت نفس الخطأ. قمت بتشغيل docker rm -f /discourse_dev ثم أعادة تشغيل d/boot_dev --init ونجح الأمر هذه المرة.
تنبيه:
لقد لاحظت للتو أن المجلد هو data/postgres بدلاً من tmp/postgres، وهذا هو السبب أيضًا في أن أمر “إعادة تعيين قاعدة البيانات” يهدف إلى حذف مجلد data ![]()
لقد فكرت في إلقاء نظرة أخرى على تثبيت Docker dev، ولكنني ما زلت أتلقى:\n\n\nCaused by:\nPG::ConnectionBad: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: No such file or directory (PG::ConnectionBad)\n Is the server running locally and accepting connections on that socket?\n\n\nومع ذلك، يمكنني التأكيد على أن الخدمة قيد التشغيل (وتعمل عند استخدام تثبيت Discourse “اليدوي” العادي غير الخاص بـ Docker)\n\n\n~/discourse_docker/discourse$ sudo service postgresql status\n● postgresql.service - PostgreSQL RDBMS\n Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)\n Active: active (exited) since Mon 2025-03-10 17:26:13 GMT; 6min ago\n Process: 2052109 ExecStart=/bin/true (code=exited, status=0/SUCCESS)\n Main PID: 2052109 (code=exited, status=0/SUCCESS)\n\nMar 10 17:26:13 black-knight systemd[1]: Starting PostgreSQL RDBMS...\nMar 10 17:26:13 black-knight systemd[1]: Finished PostgreSQL RDBMS.\n\n\nهل لدى Docker Dev احتياجات اتصال Postgres محددة ومختلفة؟
لقد وجدت أن مستويات سجل :debug الافتراضية كانت مفرطة للغاية - استعلامات SQL تطغى على الأخطاء المهمة. يسمح config/environments/development.rb بتعيين DISCOURSE_DEV_LOG_LEVEL، لكنني لا أعرف ما إذا كان يمكن القيام بذلك من خلال البرنامج النصي d/rails؟
على أي حال، قمت فقط بتشفيره مؤقتًا في config/environments/development.rb إلى config.log_level = :info وحل ذلك المشكلة بالنسبة لي. قد يساعد الآخرين أيضًا.
أحاول تشغيل هذا باستخدام المكون الإضافي Data Explorer لأنني أرغب في استكشاف أتمتة DE.
لقد تمكنت من بدء تشغيل الحاوية.
ثم تعثرت في “تثبيت” المكون الإضافي عن طريق استنساخ المستودع وإنشاء رابط رمزي له في الدليل disourse/plugins (هل هذا ما كان من المفترض أن أفعله؟ يمكن أن يكون الدليل أكثر وضوحًا بكثير في هذه النقطة).
لقد قمت بتمكين المكون الإضافي من خلال واجهة المستخدم. ولكن عندما أحاول الوصول إليه، أحصل على خطأ.
كل ما يظهر في السجل هو هذا:
Processing by DiscourseDataExplorer::QueryController#index as JSON
Completed 500 Internal Server Error in 62ms (ActiveRecord: 9.8ms (5 queries, 0 cached) | GC: 2.9ms)
ماذا يفترض بي أن أفعل بهذا؟ أين التفاصيل؟
هل قمت بتشغيل عمليات الترحيل؟
لم أحظ بتوفيق كبير في ربط مجلد الإضافات الخاص بي برابط رمزي:
لقد انتهى بي الأمر بالانتقال إلى مجلد عادي نتيجة لذلك (انظر تعليقي الأخير في هذا الموضوع).
أعتقد أن هناك بعض عدم التوافق حاليًا مع وحدات Docker، ومراقبي الملفات، والروابط الرمزية.
شكراً على الرد يا @Arkshine! ما الذي كان يجب أن ينبهني إلى أن هذا كان مطلوبًا؟ لقد اطلعت على البرنامج التعليمي الخاص بتثبيت المكون الإضافي، ولكن أعتقد أن المكون الإضافي الذي يستخدمه البرنامج التعليمي كمثال لا يحتاج إلى عمليات ترحيل؟
في هذه الأثناء، لا أعرف ما إذا كان هذا سيساعدني في تجاوز العقبة لأنني اصطدمت بالحاجة إلى وضع شهادة وكيل شركتي في حاوية Docker ولم أفعل الكثير مع Docker من قبل ![]()
ما المشكلة التي تحاول حلها؟ عادةً ما يكون تثبيت التطوير مخصصًا فقط للوصول المحلي (أي جهاز الكمبيوتر الخاص بك) حيث يتم تشغيل التثبيت.
أم أنك تحاول تصحيح خطأ يتطلب شهادة مثل نظام مصادقة؟
عندما حاولت تشغيل صورتي مرة أخرى بالأمس، طلبت تنزيل الجواهر؟
جارٍ تثبيت الجواهر...
جارٍ جلب فهرس المصدر من https://rubygems.org/
إعادة محاولة جلب البيانات بسبب خطأ (2/4): Bundler::Fetcher::CertificateFailureError تعذر التحقق من شهادة SSL لـ https://rubygems.org/.
هناك احتمال أنك تتعرض لهجوم رجل في المنتصف، ولكن على الأرجح أن نظامك لا يحتوي على شهادات CA اللازمة للتحقق. للحصول على معلومات حول شهادات OpenSSL، راجع https://railsapps.github.io/openssl-certificate-verify-failed.html.
إعادة محاولة جلب البيانات بسبب خطأ (3/4): Bundler::Fetcher::CertificateFailureError تعذر التحقق من شهادة SSL لـ https://rubygems.org/.
هناك احتمال أنك تتعرض لهجوم رجل في المنتصف، ولكن على الأرجح أن نظامك لا يحتوي على شهادات CA اللازمة للتحقق. للحصول على معلومات حول شهادات OpenSSL، راجع https://railsapps.github.io/openssl-certificate-verify-failed.html.
إعادة محاولة جلب البيانات بسبب خطأ (4/4): Bundler::Fetcher::CertificateFailureError تعذر التحقق من شهادة SSL لـ https://rubygems.org/.
هناك احتمال أنك تتعرض لهجوم رجل في المنتصف، ولكن على الأرجح أن نظامك لا يحتوي على شهادات CA اللازمة للتحقق. للحصول على معلومات حول شهادات OpenSSL، راجع https://railsapps.github.io/openssl-certificate-verify-failed.html.
تعذر التحقق من شهادة SSL لـ https://rubygems.org/.
هناك احتمال أنك تتعرض لهجوم رجل في المنتصف، ولكن على الأرجح أن نظامك لا يحتوي على
شهادات CA اللازمة للتحقق. للحصول على معلومات حول شهادات OpenSSL، راجع
https://railsapps.github.io/openssl-certificate-verify-failed.html.
إذًا… ماذا يحدث إذا نسيت كلمة مرور حساب المسؤول؟ هل أعيد تثبيت التطوير بالكامل؟
لا يمكن إرسال رسائل البريد الإلكتروني، وبالتالي لا يمكن إعادة تعيينها.
يمكنك استخدام وحدة التحكم لتعيين كلمة مرور جديدة أو إنشاء حساب مسؤول جديد.
هناك طريقة لتصبح أي مستخدم.
http://localhost:4200/session/any-username/become