قل مقارنة بالصورة البعيدة على dockerhub. لقد كنت أبحث عن طريقة أساسية للقيام بذلك ، ولكن كل ما تمكنت من العثور عليه هو نصوص bash هشة وما شابه. لا يوجد طريقة رسمية موصى بها للقيام بهذا الفحص. لم ينتج عن سؤال تجاوز سعة المكدس أي إجابات محددة حتى الآن. ليس لديه هذا السؤال المماثل .
أن تكون قادرًا على التحقق مما إذا كانت الصورة المحلية قديمة مقارنة بجهاز التحكم عن بُعد الخاص بها ، فهي مفيدة جدًا لبيئات التطوير والتشغيل المرحلي (يسمح لك عامل الإرساء السحابي بإعداد حاويات التحديث التلقائي لهذا الغرض). أعلم أن هناك إمكانية لاستخدام webhook لتشغيل إعادة سحب بعد بناء صورة ناجح ، ولكن دعنا نقول أنني أريد أن أكون قادرًا على بدء الفحص من الخادم الخاص بي ، بدلاً من الاضطرار إلى الاستماع إليه.
هل أنا محق في افتراض أنه لا يوجد أمر عامل ميناء متاح حاليًا لإجراء هذا الفحص ، أو هل فاتني حل أصلي واضح لرسو السفن لهذه المشكلة؟
لا ، لا يوجد حاليًا خيار مضمّن للتحقق مما إذا كانت الصورة "قديمة". إن التحديث التلقائي للحاويات أمر يختلف حقًا حسب حالة الاستخدام ؛ التحديث "الأعمى" إلى أحدث صورة ليس بالأمر السهل. على سبيل المثال ، يمكن أن ينتج عن some-image:latest
صورة مختلفة _completely_ (على سبيل المثال ، ubuntu:latest
يشير إلى أحدث إصدار من "LTS" ، والذي تحول في وقت ما من 14.04 إلى 16.04) ، في نفس الوقت ، some-image:1.2.3
"يبدو" مثل علامة SemVer (ish) ، ولكن ليس هناك ضمان ، لأن الأمر متروك لمؤلف الصورة لاتخاذ قرار بشأن كل من مخطط "العلامات" وما يعنيه (بشكل أساسي ، العلامات هي مجرد مجانية شكل "التسمية").
لهذا السبب ، يوصى باستخدام معرف غير قابل للتغيير للحاويات الخاصة بك (على سبيل المثال ubuntu<strong i="9">@sha256</strong>:aabbbcccddd
) ؛ يسمح لك باختبار_ إصدار الصورة الدقيق الذي تقوم بتشغيله ، ويضمن أنه الإصدار _نفس_ كما تم اختباره في عملية ضمان الجودة.
بعد قولي هذا ، هناك بعض الخيارات ؛
docker compose
، يمكنك docker-compose pull
لسحب أحدث إصدار من جميع الصور المستخدمة في مجموعة الإنشاء الخاصة بكdocker build --pull .....
لفرض سحب الصورة المحددة بـ FROM
قبل البدء في إنشاءdocker service update --force --image foo:bar <servicename>
أحدث إصدار من صورة foo:bar
المحددة ، و "تثبيت" جميع مثيلات الخدمة في هذا الإصدارآمل أن يكون هذا يجيب عن سؤالك. يرجى أن تضع في اعتبارك أن أداة تعقب المشكلات على GitHub ليست مخصصة كمنتدى دعم عام ، ولكنها مخصصة للإبلاغ عن الأخطاء وطلبات الميزات. بالنسبة لنوع آخر من الأسئلة ، فكر في استخدام أحد ؛
سأغلق هذه المشكلة لأن هذا ليس خطأ ، لكن لا تتردد في مواصلة المحادثة 👍
على الرغم من ذلك ، هناك فرق بين "التحديث الأعمى" والحصول على إشعار فقط بتغيير الصورة البعيدة (باستخدام نفس العلامة) ، بحيث يمكنك بدء الإنشاء وعملية ضمان الجودة.
في الواقع. ستكون الآلية المستقرة التي يمكن من خلالها اكتشاف تحديثات للحاوية - بدون إعادة تنزيل الحاوية بأكملها كل يوم - رائعة.
تعد تحديثات الأمان مهمة للغاية ، ولا يؤدي فقدان هذه الميزة إلى تسهيل مواكبة التطورات ...
التعليق الأكثر فائدة
على الرغم من ذلك ، هناك فرق بين "التحديث الأعمى" والحصول على إشعار فقط بتغيير الصورة البعيدة (باستخدام نفس العلامة) ، بحيث يمكنك بدء الإنشاء وعملية ضمان الجودة.