المشغل يسحب تحديثًا عند تشغيل التطبيق

أواجه سلوكًا غريبًا أفترض أنه خطأ:

على أنظمة ARM، عندما تقوم بتشغيل ./launcher enter app، فإنه يقوم بسحب الصورة. أتوقع أن يكون ذلك بسبب:

# 4. يتم تنزيل صورة discourse docker
  3   test=`$docker_path images | awk '{print $1 ":" $2 }' | grep "$image"`
  2
  1   # دعم arm التجريبي على علامة ثابتة، اسحب دائمًا
227   if [ -z "$test" ] || [ $arm = true ]; then
  1     echo
  2     echo "تحذير: سنبدأ الآن في تنزيل صورة الأساس لـ Discourse"
  3     echo "قد تستغرق هذه العملية ما بين بضع دقائق إلى ساعة، اعتمادًا على سرعة شبكتك"
  4     echo
  5     echo "يرجى التحلي بالصبر"
  6     echo
  7
  8     pull_image
  9   fi

هل هناك سبب لسحب الصورة عند الدخول إلى docker أم أن هذا خطأ؟

المُشغّل يقوم دائمًا بالسحب لأن الناس لن يقوموا بذلك بأنفسهم.

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

docker exec -it app bash

للدخول إلى الحاوية

إعجابَين (2)

أعتقد أن هناك ما هو أكثر من ذلك في هذه الحالة، لأنه على Intel، يتحقق البرنامج النصي لمعرفة ما إذا كانت هناك صورة جديدة متاحة، ولكن على ARM، سيقوم دائمًا بالسحب. السبب المعطى هو أن ARM يستخدم دائمًا علامة ثابتة. على سبيل المثال، اليوم، نرى في برنامج نصي للمشغل احتمالين:
image="discourse/base:2.0.20240825-0027"
أو
image="discourse/base:aarch64"
وكما ترى، فإن أحد هذه الاحتمالات تتم صيانته بعناية مع الموافقة على الصور الجديدة، والآخر يُترك لموضع العلامة.

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

كما اتضح، فإن صورة Intel التي سيتم سحبها عمرها حاليًا 15 يومًا وتقع في الصفحة الثامنة من قوائم الصور الأساسية، بينما صورة ARM هي أحدث صورة وعمرها 17 ساعة فقط.

3 إعجابات