هل هناك طريقة لتثبيت Discourse بدون البرامج النصية المتوفرة؟

مرحبًا بالجميع،

أنا هنا مرة أخرى لأسأل عن شيء غريب :sparkles:

ما زلت أبحث عن كيفية تثبيت Discourse لمجتمعي الداخلي. في الماضي، سألت عن كيفية تثبيت Discourse مع Redis خارجي و Postgres خارجي وكيفية إدارة كل شيء في مجموعة Kubernetes. يمكنك العثور على التفاصيل هنا

الآن لدي شك آخر لأنني أُخبرت أيضًا أنه يتعين علي إنشاء صورة حاوية خاصة بي لاستخدامها مع helm للنشر، وبسبب ذلك لن أتمكن من تنفيذ التثبيت باستخدام الوثائق الرسمية من خلال السكربتات المقدمة في دليل التثبيت السحابي. :cold_sweat:

حاولت بناء صورتي الخاصة باستخدام أمر bootstrap لكنني لا أستطيع تشغيل صورة docker بنفسي لأنها تبحث عن قوالب Ruby وتعيد خطأ.

هل من الممكن تشغيل صورة الحاوية دون استخدام السكربتات المقدمة؟ أعتقد أنني بحاجة إلى بعض المساعدة لأنني حاولت النظر إلى سكريبت bash لكنه يبدو متقدمًا بعض الشيء بالنسبة لي. كنت آمل أن يكون شخص آخر في موقف مشابه وربما يمكنه تقديم بعض النصائح.

شكرًا مرة أخرى على كل شيء :revolving_hearts:

للتوضيح وإضافة المزيد من التفاصيل:
استخدمتُ سكريبت التشغيل مع أمر bootstrap لإنشاء صورة خاصة بي تتضمن إعداداتي.
ثم تنص الوثائق على أنه يجب تشغيل السكريبت مع أمر run لإنشاء الحاوية من الصورة.
عند فحص كود السكريبت، وجدت أن أمر docker هو التالي:

$docker_path run --shm-size=512m $links $attach_on_run $restart_policy "${env[@]}" "${labels[@]}" -h "$hostname" \
        -e DOCKER_HOST_IP="$docker_ip" --name $config -t "${ports[@]}" $volumes $mac_address $user_args \
        $run_image $boot_command

لكنني غير قادر على تحويل جميع المتغيرات إلى أمر يمكنني تشغيله بمفردي دون استخدام السكريبت. أو ربما تكون المسار الذي أتبعه خاطئ من البداية، لكنني أردت التجربة قبل السؤال للتأكد من قدرتي على حل المشكلة دون إزعاج أي شخص.

عند محاولة تشغيل صورة docker بنفسي، تغلق الحاوية، وعند الاطلاع على السجلات أرى ما يلي:

Already up to date.
INFO -- : Loading --stdin
/pups/lib/pups/config.rb:23:in `initialize': undefined method `[]' for nil:NilClass (NoMethodError)
	from /pups/lib/pups/cli.rb:27:in `new'
	from /pups/lib/pups/cli.rb:27:in `run'
	from /pups/bin/pups:8:in `<main>'

جرّب تشغيل ./launcher start-cmd app

3 إعجابات

شكرًا لك، كان هذا مفيدًا جدًا :sparkling_heart:

هل كان هذا الأمر مذكورًا في الوثائق؟ إذا كان الأمر كذلك، فأعتذر عن السؤال، لم أره.

شكرًا جزيلاً لك على مساعدتك لي دائمًا :sparkles:

إعجابَين (2)

يعتمد Discourse على PostgreSQL يعمل في مساحة تخزين مشتركة؛ والعديد من الملفات المهمة الأخرى موجودة في هذه المساحة المشتركة (الصور، والملفات المرفوعة، والنسخ الاحتياطية، وسجلات الأحداث، وغيرها).

إذا حافظت على سلامة نظام الملفات في مجلد /shared وفقًا لمعايير تكوين Discourse، فيمكنك بدء وإيقاف صورة Docker الخاصة بـ Discourse وتطبيق الحاوية بسهولة؛ ومع ذلك، لا يمكنك بناء التطبيق (بحسب معرفتي) دون استخدام سكريبتات Discourse (ما لم تقم بعمل هندسة عكسية كاملة للسكريبتات وكتابة سكريبت خاص بك بناءً على السكريبتات الجيدة والموثقة والداعمة) لأن السكريبتات مسؤولة عن بناء تطبيق SPA معقد باستخدام EmberJS (تكنولوجيا جانب العميل) فوق Ruby on Rails (تكنولوجيا جانب الخادم)، ناهيك عن إدارة تكوين التطبيق الأساسي وجميع الإضافات. بصراحة، إنه تطبيق معقد للغاية.

نعم، يمكنك بدء حاوية Discourse أو إنشاء حاوية Discourse من صورة Discourse دون أي سكريبتات، إذا (وفقط إذا) كنت قد قمت بالفعل ببناء صورة Docker لـ Discourse ممتازة ومتوافقة مع معايير تكوين Discourse، بما في ذلك متطلبات التخزين الدائم لقاعدة البيانات والصور والملفات المرفوعة والنسخ الاحتياطية وملفات السجلات، وما إلى ذلك. هناك العديد من الملفات المهمة المطلوبة لـ Discourse في المساحة المشتركة؛ وبالتالي لا يمكنك ببساطة “أخذ صورة Docker عادية لـ Discourse” وتشغيلها دون جميع المتطلبات الأساسية المذكورة أعلاه (وليس كل ما ذُكر أعلاه تم ذكره!)

أتمنى أن يكون هذا مفيدًا.

شكرًا على الرد، هذا مفيد جدًا :slight_smile: كنت أقرأ أمس عن سبب الحاجة إلى هذه السكريبتات في هذا الموضوع وبعض المواضيع الأخرى.

شكرًا مجددًا على شرحك المفصل، كل هذه المعلومات تساعدني على فهم كيفية إنشاء سير عمل خاص بي يتوافق مع المعايير المطلوبة :slight_smile:

إعجاب واحد (1)

عفوًا.

قد يكون الأمر محيرًا جدًا لأي شخص ليس (1) مطور Ruby on Rails ولا (2) مطور EmberJS.

ببساطة، أنت تبني تطبيق Ruby on Rails مُعبَّأ في حاوية (Docker) للاستخدام في بيئة الإنتاج (التقنية الخاصة بالجهة الخادمة) والذي يُشكّل الأساس لتطبيق صفحة واحدة (SPA) من فئة عالمية مبني بـ EmberJS (التطبيق الرئيسي للمستخدم)؛ وفوق كل ذلك، تحصل على نظام كامل لإدارة التكوين مفتوح المصدر لكل أكواد المصدر، يُدار بواسطة فريق موهوب وذي خبرة عالية من الخبراء التقنيين في مجال الويب، الذين يبرمجون في هذه البيئة منذ فترة طويلة. وعلاوة على ذلك، يمكنك أيضًا الحصول على استضافة احترافية وتطوير مخصص، وكل ذلك ضمن نظام أعمال Discourse.

أليس هذا رائعًا؟ :slight_smile:

إعجابَين (2)

لقد صادفت هذا العرض بالصدفة. هل تقصد أنني لا يمكن تشغيل التطبيق وقاعدة البيانات على مضيفين مختلفين فيزيائيًا دون مشاركة أي شيء على الإطلاق؟

سيكون هذا عائقًا تامًا في حالتي…

لا، هذا ليس هو الحال. يُعد تشغيل Discourse مع قاعدة بيانات خارجية مخصصة حالة استخدام مدعومة ومُوثَّقة.

4 إعجابات