حسنًا، اليوم كانت المشكلة أنني أردت إجراء تثبيت نظيف حيث كان لدي إصدار غريب 2.4.0-betaXYZ لم يتمكن من التحديث بنفسه. أجريت اختبارًا على جهاز افتراضي آخر بتثبيت نظيف واستعادة النسخة الاحتياطية إلى 2.7.12 والذي نجح تمامًا (كما قمت بفصل حاوية البيانات إلى redis و postgres).
الآن كان الخادم الرئيسي لا يزال يعمل بنظام Ubuntu قديم و Docker قديم، لذلك أردت:
- أخذ نسخة احتياطية
- إيقاف Discourse
- القيام بمشكلات ترقية نظام التشغيل دون القلق بشأن Discourse بما في ذلك عمليات إعادة التشغيل المتعددة
- إجراء تثبيت نظيف
- استعادة النسخة الاحتياطية
أردت فقط إبقاء الحاويات متوقفة وعدم حذفها على الفور، حيث لم أكن متأكدًا بعد مما إذا كنت بحاجة إلى أي شيء منها ربما نسيته أثناء اختباري. وفكرت للتو، حسنًا، “unless-stopped” هو سياسة إعادة التشغيل المثالية بالنسبة لي حيث تضمن تشغيل الحاويات تلقائيًا بعد إعادة التشغيل إلا إذا قمت بإيقافها يدويًا. عادةً ما يكون هذا هو ما أريده بالضبط، لذلك فكرت لماذا لا أحاول جعله دائمًا.
ليس الأمر مهمًا إذا لم يكن ذلك ممكنًا.
سأقوم فقط بتحديث Docker (أو إذا كنت أنسى ذلك كثيرًا، فسأقوم بتحديث Docker عبر cron كل 5 دقائق).