أوامر المشغل في مجلد /var/discourse ليست واضحة بذاتها

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

المعلومات الواردة في دليل التثبيت والمنشورات في هذا المنتدى غير متسقة إلى حد ما. ليس واضحاً تماماً، على سبيل المثال، ما الفرق بين تهيئة الحاوية وبناءها.
يجب أن يكون هناك سلم تصعيد يوضح أي إجراء يتطلب أي أمر عند تعديل ملف مثل app.yml، فالبعض يقول إن الأمر start كافٍ، بينما يقول آخرون إن عليك استخدام rebuild أو حتى تنفيذ ./discourse-setup أيضاً.

الأوامر:
    start:      تشغيل/تهيئة حاوية
    stop:       إيقاف حاوية قيد التشغيل
    restart:    إعادة تشغيل حاوية
    destroy:    إيقاف وإزالة حاوية
    bootstrap:  تهيئة حاوية للإعدادات بناءً على قالب
    rebuild:    إعادة بناء حاوية (إزالة القديمة، تهيئة جديدة، تشغيل جديدة)

أبدأ تدريجياً في تكوين انطباع بأن جميع الأوامر تمثل تسلسلاً متتابعاً من الإجراءات.
كل خطوة/أمر لاحق يقوم بنفس ما يفعله سابقه بالإضافة إلى شيء إضافي.

على سبيل المثال، شيء من هذا القبيل:

  1. التشغيل

    1. bootstrap: إزالة القديمة + تهيئة حاوية للإعدادات بناءً على قالب
    2. rebuild: bootstrap + إعادة بناء حاوية (تشغيل جديدة)، مما يعني أنه يقوم بأشياء مثل تنزيل أحدث إصدارات البرامج وتطبيق الإعدادات المحدثة
    3. start: التهيئة، مهما كان معناها
  2. الإيقاف

    1. stop: إيقاف حاوية قيد التشغيل
    2. restart: إعادة تشغيل حاوية (بما في ذلك الإيقاف)
    3. destroy: إيقاف وإزالة حاوية

لست متأكدًا مما إذا كنت أتابع هنا… هل يمكنك إنشاء طلب سحب (PR) مع التغيير المقترح؟

أنا على وشك تقديم طلب سحب (PR) على GitHub، لكنني بحاجة إلى فهم كل أمر بالتفصيل، وهو ما لم يتحقق حتى الآن.

هل يمكنك إخباري بما يفعّله كل أمر؟ لقد قرأت العديد من المنشورات في هذا الصدد، لكن المعلومات غير متسقة.
مثال جيد هو الأمر start. فقد ذُكر مرة أنه يُستخدم فقط لإيقاف وتشغيل الحاوية، مثلاً عند القيام بشيء ما على المضيف. وفي موضوع آخر، ذُكر أنه يُفعّل حاوية، مهما كان معنى “تفعيل” :confused:

التهيئة تعني أنه إذا لم يكن هناك حاوية موجودة، فسيتم إنشاؤها. إذا قمت بإيقاف التشغيل ثم البدء، فستقوم بإيقاف وتشغيل نفس الحاوية بنفس المعاملات (مثل إعدادات SMTP وغيرها من إعدادات البيئة)، ولكن إذا قمت بالتدمير أولاً، فسيتم إنشاء حاوية جديدة بإعدادات بيئة جديدة أو تهيئتها.

ما الفرق بين bootstrap و start إذا لم يكن هناك حاوية موجودة؟

يقوم Bootstrap ببناء صورة Docker جديدة، وهو أمر ضروري لتمكين “تهيئة” حاوية قيد التشغيل.

إعادة البناء ستعمل دائمًا. في بعض الأحيان، تكون غير ضرورية، حيث يكفي تدمير الحاوية وإعادة تشغيلها لتطبيق إعدادات البيئة (مثل SMTP). لكن الكثير من الأشخاص لن يفهموا هذه التفاصيل الدقيقة حقًا، لذا من الأفضل إخبارهم دائمًا بإعادة البناء لأنها تعمل دائمًا.

إذن، ./discourse-setup هو الأمر الأقل تدخلاً لأنه يعيد إنشاء برمجيات discourse فقط.

  1. Bootstrap من الصفر تمامًا، ويبدأ بصورة docker
  2. start، من الصفر، يبني حاوية
  3. ./discourse-setup، يشغل إعداد discourse

ما هو الأمر المتاح لإعادة تطبيق التكوين كما هو:

  1. مُعرّف في app.yml؟
  2. مُشار إليه في app.yml؟

بافتراض أن app.yml هو المصدر لأي شيء، وبالتالي فإن ./discourse-setup يقرأ هذا الملف فقط لإنجاز مهمته.

إذا كنت بحاجة إلى معرفة ما يفعله كل أمر بالضبط، يمكنك قراءته هنا: discourse_docker/launcher at master · discourse/discourse_docker · GitHub

شكرًا، هذا مفيد :slight_smile:
هناك إعداد تم ذكره مرة واحدة، هل هو مرتبط بـ ./discourse-setup؟

هذا مكتمل الآن أكثر قليلاً:

الاستخدام: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
الأوامر:
    start:       بدء/تهيئة حاوية
    stop:        إيقاف حاوية قيد التشغيل
    restart:     إعادة تشغيل حاوية
    destroy:     إيقاف وإزالة حاوية
    enter:       فتح واجهة أوامر لتشغيل الأوامر داخل الحاوية
    logs:        عرض سجلات Docker لحاوية
    bootstrap:   تهيئة حاوية للإعداد بناءً على قالب
    run:         تشغيل الأمر المحدد مع الإعداد في سياق آخر صورة تم تهيئتها
    rebuild:     إعادة بناء حاوية (إزالة القديمة، تهيئة، بدء جديدة)
    cleanup:     إزالة جميع الحاويات التي توقفت لمدة تزيد عن 24 ساعة
    start-cmd:   إنشاء أمر docker المستخدم لبدء الحاوية

الخيارات:
    --skip-prereqs             عدم التحقق من المتطلبات الأساسية للمشغل
    --docker-args              وسائط إضافية لتمريرها عند تشغيل docker
    --skip-mac-address         عدم تعيين عنوان mac
    --run-image                تجاوز الصورة المستخدمة لتشغيل الحاوية
root@monstera:/var/discourse#