الانتقال من حاوية مستقلة إلى حاويات ويب وبيانات منفصلة

مرحبًا جايز @pfaffman، شكرًا لك على هذا المنشور والمنشورات الأخرى حول موضوع “حاويتين”، بما في ذلك كتابات سام حول هذا الموضوع أيضًا.

سؤال:

لقد حاولنا إعداد حاويتين كما ذكرت، حاوية واحدة لـ data وحاوية واحدة لـ web-only، وواجهنا عددًا من العقبات في تشغيل هذا الإعداد على نظام macOS.

ولكن قبل أن نقلق بشأن تصحيح أخطاء إعداد “الحاويتين” هذا على نظام macOS أو Ubuntu، نود التأكد من أننا نفعل ذلك للأسباب الصحيحة.

السبب الذي يجعلنا نرغب في تنفيذ “رقصة الحاويتين” هو ألا ينقطع الموقع عند إعادة بناء تطبيق الويب، على سبيل المثال عند تثبيت إضافة. أيضًا، عندما نقوم بضبط إضافة مطورة داخليًا؛ لاحظنا أن الطريقة الوحيدة أحيانًا لضمان عمل تعديلاتنا هي إعادة البناء (وهذه قصة ليوم آخر). لقد كافحت أيضًا للحصول على إعداد “سريع ومريح” لتطوير الويب إلى حد رضائي؛ لكن هذا موضوع آخر ليوم آخر.

إذن، سؤالي هو: هل إعداد “الحاويتين” يقلل بشكل كبير من وقت التوقف عند إعادة بناء الجزء الخاص بـ “web-only” من التطبيق؟

هذا هو التفكير الصحيح في الأمر، أليس كذلك؟

عند تثبيت إضافة أو ضبط واحدة، هل نحتاج إلى إعادة بناء ملف yml الخاص بـ “web-only” فقط وليس ملف yml الخاص بـ البيانات؟

نحن قادمون من خلفية منتديات LAMP، حيث يمكن إجراء تغييرات على الإضافات وتتم غالبًا في وقت التشغيل على الموقع المباشر (بدون توقف ما لم نرتكب خطأً بسيطًا). أيضًا، نحن نأتي من بعض تطبيقات الويب VueJS حيث نقوم بالبناء على سطح المكتب ثم نقوم فقط برفع التطبيق الجديد ووضعه في مكانه، ولا يوجد تقريبًا أي توقف أثناء الترقية/التحديث لجزء VueJS من الموقع. ومع ذلك، مع Discourse نحصل على توقف، وهو ما لا نريده (حتى لو لبضع ثوانٍ).

هل يُظهر حل “الحاويتين” تحسينات كبيرة في وقت التوقف عندما نقوم إما (1) بإعادة بناء التطبيق (للإضافات، وضبط الكود، إلخ) أو (2) بالاستعادة من نسخة احتياطية كاملة؟

أشعر أنني سأُنتقد (مرة أخرى) لطرح هذا السؤال لأننا نبحث عن طريقة لتشغيل Discourse في بيئة الإنتاج وإجراء تغييرات مع توقف شبه معدوم، ولم نجد بعد طريقة للقيام بأشياء يسهل القيام بها مع تطبيقات LAMP أو VueJS (على سبيل المثال).

ومن هنا، الصراع / الاهتمام بطريقة “الحاويتين” التي لم نتمكن بعد من تشغيلها.

شكرًا لك!