النشر التلقائي لبيئة الإنتاج

مرحباً،
لدي Discourse مثبت على جهازي Azure VM منفصلين (للتجربة والإنتاج). هل هناك طريقة لنشر التغييرات تلقائيًا من بيئة التجربة إلى بيئة الإنتاج؟

سيتم إدارة تغييرات واجهة المستخدم (السمات) في مستودع Git، لذا لن تكون مشكلة شحنها إلى بيئة الإنتاج. القلق الرئيسي يكمن في أتمتة نشر إعدادات وتكوينات Discourse إلى بيئة الإنتاج. كيف يمكننا تحقيق ذلك؟

يمكنك دفع حاوية المرحلة إلى مستودع ثم تشغيلها في بيئة الإنتاج. سيمنحك الأمر ./launcher start-cmd app الأشياء المطلوبة لتشغيل الحاوية في Docker.

ستحتاج أيضًا إلى ترحيل قاعدة البيانات (ربما باستخدام SKIP_POST_DEPLOYMENT_MIGRATIONS ثم مرة أخرى عند بدء تشغيل الحاوية الجديدة إذا كنت تريد وقت توقف حقيقي عن العمل) وتجميع الأصول مسبقًا.

بعض الإعدادات تعيش في قاعدة البيانات. يمكن تعيين البعض الآخر باستخدام متغيرات البيئة مثل DISCOURSE_SETTING_NAME (على سبيل المثال، DISCOURSE_TITLE='my great communiyt').

إعجابَين (2)

استراتيجية أخف وزنًا هي استخدام هذا:

لاحظ “إظهار المتجاوز فقط” في الزاوية العلوية اليمنى

سيمنحك هذا قائمة بالأشياء التي ليست افتراضية والتي قد تنقلها يدويًا.

اعتمادًا على حاجتك، قد يكون هذا أبسط. (ومع ذلك، لدي أكثر من 100 إعداد ليست افتراضية في نسختي التي يعود تاريخها إلى عدة سنوات.)

يمكن نسخ ملف app.yml جزئيًا.

بالطبع، لن يتم نقل الفئات وما إلى ذلك.

هل يمكن تحقيق ذلك بنهج مستقل، أم أحتاج إلى حاويتين (واحدة لقاعدة البيانات وواحدة للويب)؟

إذا لم تكن من الهواة، فإنني أوصي بحاويتين، حيث يتعين عليك إيقاف تشغيل قاعدة البيانات عند بدء تشغيل حاوية جديدة، لذا لا يمكنك تحقيق وقت تشغيل خالٍ من الانقطاع. ولكنها ستعمل مع حاوية واحدة.

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