إعادة بناء التطبيق launcher سحب أحدث إصدار من discourse من github

مرحباً،

لدي بالفعل Discourse مثبت ويعمل. في كل مرة أقوم فيها بإعادة بناء التطبيق، فإنه يسحب مستودع المشغل، وصورة Docker الأساسية لـ Discourse، ومستودع Discourse.

أريد الحد من هذا السلوك بحيث لا يتحقق إعادة البناء من التحديثات ويسحبها تلقائيًا إلا إذا تم تمرير معلمة محددة.

هل قام أي شخص بشيء مماثل؟

هل أنت قلق بشأن استقرار الإصدار؟

لماذا لا تنتقل ببساطة إلى الفرع المستقر؟

أنا أستخدم الإصدار المستقر، 3.2.0.

القصد هو السحب فقط من مستودع GitHub أو Docker Hub عندما نريد، وليس في كل مرة نعيد فيها بناء الحاوية.

هل تستخدم تثبيتًا قياسيًا؟

إذا كان الأمر كذلك، فلماذا لا تقوم بتشغيل أمر إعادة البناء؟

للعلم، التحديثات المستقرة يمكن أن تكون مهمة - فهي عادة ما تحتوي على إصلاحات للثغرات الأمنية أو الأخطاء الهامة.

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

إذا كنت ترغب في إعادة تشغيل الحاوية دون إعادة بنائها، فما عليك سوى القيام بما يلي:

./launcher restart app

لماذا تحتاج إلى إعادة البناء دون التحديث - ما هو هدفك؟

من غير المرجح أن تؤدي التحديثات المستقرة إلى إدخال أي تغييرات جذرية.

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

نقطة الاستقرار هي عدم التغيير. لماذا تعيد البناء على الإطلاق؟

السبب في سحب الحاوية هو الحفاظ عليها متوافقة مع متطلبات كود الخطاب.

إذا كنت ترغب في القيام بشيء مثل الدخول إلى الحاوية دون إجراء سحب، يمكنك

 docker exec -it app bash

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

إعجابَين (2)

في حال إضافة أو إزالة مكون إضافي، لن يقوم ./launcher restart app بتحديث المثيل.

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

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

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

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

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

لقد أجريت التغييرات التالية على المشغل

echo "    --pull-git                 Pull the latest git repository"
  echo "    --pull-image               Pull the latest Docker image"

pull_git=false
pull_image=false
rebuild)
      if [ "$(git symbolic-ref --short HEAD)" = "master" ] && [ "$pull_git" = true ]; then
        git branch -m master main
        git fetch origin
        git branch -u origin/main main
        git remote set-head origin -a
      fi
....

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

عندما تواجه مشكلة مع هذه المكونات الإضافية، تأكد من ذكر ذلك عند بدء موضوع جديد.

لا، هذا لا يحدث، على الأقل ليس بشكل صحيح.

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

لذلك، لإضافة مكون إضافي جديد، يجب عليك إجراء إعادة بناء في معظم الحالات.

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

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