تراجع ضحل في جلب git في discourse_docker

أنت محق، في ذلك الوقت لا نعرف الإصدار. يبدو أن الصورة الأساسية تستخدم الإصدار الحالي + فرع tests-passed، على الرغم من أن الفرع سيحتوي على commit في الوقت الذي تم فيه بناء الصورة.

أليس من الممكن أن تكون الطريقة الحالية تؤدي إلى إعادة بناء أبطأ، حتى عند استخدام فرع tests-passed؟

فقط ضع في اعتبارك التعليمات التالية:

في الصورة الأساسية:

git clone --depth 1 https://github.com/discourse/discourse.git
cd discourse/
git remote set-branches --add origin tests-passed

في ملف web.template.yml

git reset --hard
git clean -f
git remote set-branches --add origin master
git pull
...
عند استدعاء `git pull`، **يتم سحب المستودع بالكامل**، وقد يستغرق عدة دقائق، لأنه تم إجراء استنساخ ضحل (shallow clone) فقط من قبل. يمكنك تجربة تشغيل التعليمات أعلاه محليًا ورؤية النتيجة. لا أقول إن وجود المستودع بالكامل في الصورة الأساسية أفضل، لكن الكود في `web.template.yml` سيعمل في كل إعادة بناء، حتى لو تمت إضافة إضافة (plugin) واحدة فقط أو تغيير إعداد في `app.yml`. ما أفعله عادةً في مشاريعي (غير discourse) هو إنشاء صورة جديدة لكل إصدار جديد، لكن قد لا يكون ذلك ممكنًا بالنسبة لك (بالنظر إلى الطريقة التي تتبعها حاليًا). ألم تلاحظ أي زيادة في وقت إعادة البناء؟ (أو ربما أن هذه الزيادة ليست كبيرة مقارنة بإجمالي وقت إعادة البناء في معظم الحالات)

تحديث

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

إعجابَين (2)