مشاكل في فهم تطور Discourse

مرحباً بالجميع.
لقد قمت بتثبيت Discourse على جهاز الكمبيوتر المحلي الخاص بي على

http://localhost:4200/

وفقاً لـ هذا الدليل. هنا أقوم بتطوير Discourse، والقوالب، والإضافات.
كما قمت بتثبيت Discourse آخر على جهاز افتراضي باستخدام Docker وفقاً لـ هذا الدليل
هذه التثبيتات تعمل بشكل رائع.

لا أفهم ما هو Docker ولماذا تختلف الملفات على الجهاز الافتراضي عن الملفات على جهاز الكمبيوتر المحلي.

ماذا سيحدث إذا قمت بإيقاف Docker على الجهاز الافتراضي باستخدام الأمر d/shutdown_dev؟

كيف يمكنني مزامنة هذين التثبيتين باستخدام Git؟

هل يمكنني تثبيت Docker على جهاز محلي، ولماذا؟

يرجى مساعدتي في فهم هذه الأسئلة.

دعني أحاول توضيح التدفق:

  1. العمل على قاعدة الكود (داخل /discourse).
  2. تجميع قاعدة الكود في حاوية Docker.
  3. نشر حاوية Docker هذه إلى خادم الإنتاج الخاص بك.

أحد حالات الاستخدام لتشغيل Docker محليًا هو اختبار حاوية Docker المُجمَّعة حديثًا قبل النشر إلى خادم الإنتاج الخاص بك.

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

وجود Docker أو عدمه أمر غير ذي أهمية تقريبًا في تطوير مكونات الإضافات والقوالب. هذا شأن منفصل. أنا لا أشغل مثيل Docker في بيئة التطوير.

عند تطوير إضافات لـ Discourse، لا ينبغي أن تقلق بشأن النسخة الدقيقة أو إعدادات مثيل التطوير مقارنة بالبيئة الإنتاجية، لأنك عادةً لا تملك سيطرة على معظم المثيلات التي سيُستخدم فيها الإضافة في أي حال إذا كان مفتوح المصدر. الأهم هو اتباع الممارسات الجيدة لجعل الإضافة أكثر متانة تجاه التغييرات في نواة Discourse. حتى لو كنت تطور فقط لمثيل Discourse الخاص بك، فلا تزال لا تملك سيطرة على التغييرات في النواة، لذا فإن نفس المنهجية تنطبق.

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

عادةً ما أقوم بتحديث مثيل التطوير إلى أحدث إصدار من الفرع master عند العمل على تغييرات الإضافة (إصلاحات أو تحسينات) حتى أستطيع معالجة أي تغييرات كاسرة. ويتم ذلك ببساطة عبر أمر git pull، ثم bundle install، ثم db:migrate.

يجب تحديث مثيلات الإنتاج فقط عبر الواجهة الأمامية أو عبر أمر إعادة البناء من سطر الأوامر.

نصيحتي هي أن تنشر الإضافة للعامة وتجذب المستخدمين، وتتعلّم العقبات من خلال التجربة. لا تؤجل الأمر كثيرًا: ابدأ! ولا تقلق بشأن ارتكاب الأخطاء لأنها تساعدك على التعلم.

6 إعجابات

شكرًا جزيلاً لك على إجابتي.سأحاول التطويرأي أنه يمكنني حذف “git clone /github…docker” من ملف app.yaml؟ثم إعادة بنائه؟

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

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

أفهمك. شكرًا لك

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