@pfaffman إذا ألقيت نظرة على التغييرات التي أجريتها، فلن أكون قد غيّرت تعليمات قالب الويب في discourse_docker، بل قمت بفصلها إلى 3 ملفات فقط، وهذا هو الشيء الوحيد الذي طلبته فعليًا: أحدها يشغّل تعليمات يمكن أن تكون مستقلة عن البيئة، مثل تثبيت حزم Ruby، ومستودعات Discourse والإضافات، وما إلى ذلك، والآخر يقوم ببعض عمليات التحقق، والثالث يقوم بأشياء خاصة بالبيئة، مثل تنفيذ ترحيل قاعدة البيانات وتجميع الأصول مسبقًا.
التعقيد الذي أعتقد أنه يضيفه هو أنه عند إضافة شيء ما إلى تلك الملفات، يجب على فريق Discourse أن يقرر ما إذا كانت هذه الأمور خاصة بالبيئة أم لا (مثل الاعتماد على عناصر في قاعدة البيانات)، وبناءً على ذلك، يحدد في أي ملف يجب تضمينها.
ستعمل التثبيت الرسمي بنفس الطريقة التي تعمل بها الآن، باستثناء أنه سيضمّن القوالب الثلاثة في ملف app.yml (أو يجعل ملف templates/web.template.yml يضمّن تلك الثلاثة، إذا كان ذلك ممكنًا، وفي هذه الحالة، من منظور المستخدم، لن يتغير شيء)، بدلاً من القيام بذلك في أكثر من خطوة (لن يكون لديه مزايا التثبيت المكون من خطوتين، لكنه سيعمل تمامًا كما يُنفذ حاليًا، لذا لن يكون هناك تغييرات كاسرة).
أعلم أن الأمور المتعلقة بمسؤولي الأنظمة يمكن أن تكون معقدة للغاية، لكنني حاولت تنفيذها بأبسط طريقة ممكنة، مع مراعاة كيفية تنفيذها حاليًا، لتجنب التعقيد الكبير (ولهذا السبب لم أتحدث عن k8s، أو فصل الخدمات في ملف docker-compose، أو أشياء مماثلة، لأن ذلك سيتطلب تغييرات كبيرة، وبدلاً من ذلك اعتمدت على كيفية تنفيذها في التثبيت الرسمي).