حول تحديثات الصورة الأساسية لمهام ACR

توفر هذه المقالة معلومات أساسية حول التحديثات التي تم إجراؤها على الصورة الأساسية للتطبيق، وكيف يمكن لهذه التحديثات تشغيل مهمة Azure Container Registry.

ما هي الصور الأساسية؟

تحدد ملفات Dockerfiles التي تحدد معظم صور الحاوية صورة رئيسية تستند إليها الصورة، وغالباً ما يشار إليها باسم base image. تحتوي الصور الأساسية عادةً على نظام التشغيل، على سبيل المثال Alpine Linux أو Windows Nano Server، حيث يتم تطبيق بقية طبقات الحاوية. قد تتضمن أيضاً أطر عمل للتطبيق مثل Node.js أو .NET Core. تستند هذه الصور الأساسية في حد ذاتها عادةً إلى الصور الأولية العامة. قد تشترك العديد من صور التطبيق في صورة أساسية مشتركة.

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

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

احتفظ بنسخ من الصور الأساسية

بالنسبة إلى أي محتوى في سجلاتك يعتمد على المحتوى الأساسي المحفوظ في سجل عام مثل Docker Hub، نوصي بنسخ المحتوى إلى سجل حاوية Azure أو سجل خاص آخر. بعد ذلك، تأكد من إنشاء صور التطبيق الخاص بك من خلال الرجوع إلى الصور الأساسية الخاصة. يوفر Azure Container Registry إمكانية image impor لنسخ المحتوى بسهولة من السجلات العامة أو سجلات حاوية Azure الأخرى. يصف القسم التالي استخدام مهام ACR لتتبع تحديثات الصورة الأساسية عند إنشاء تحديثات التطبيق. يمكنك تتبع تحديثات الصور الأساسية في سجلات حاوية Azure الخاصة بك وبشكل اختياري في السجلات العامة الأولية.

تتبع تحديثات الصورة الأساسية

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

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

مواقع الصورة الأساسية

بالنسبة إلى إنشاءات الصور من Dockerfile، تكتشف مهمة ACR التبعيات على الصور الأساسية في المواقع التالية:

  • سجل حاوية Azure نفسه حيث يتم تشغيل المهمة
  • سجل حاوية Azure خاص آخر في نفس المنطقة أو في منطقة مختلفة
  • إعادة شراء عامة في Docker Hub
  • ريبو عام في Microsoft Container Registry

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

إخطارات الصورة الأساسية

يعتمد الوقت بين تحديث الصورة الأساسية ووقت تشغيل المهمة التابعة على موقع الصورة الأساسي:

  • قاعدة الصور من مستودع عام في Docker Hub أو MCR - بالنسبة للصور الأساسية في المستودعات العامة، تتحقق مهمة ACR من تحديثات الصور على فترات عشوائية تتراوح بين 10 و60 دقيقة. يتم تشغيل المهام التابعة وفقاً لذلك.
  • الصور الأساسية من سجل حاوية Azure - بالنسبة للصور الأساسية في سجلات حاوية Azure، تقوم مهمة ACR بتشغيل التشغيل فوراً عند تحديث صورتها الأساسية. قد تكون الصورة الأساسية في نفس ACR حيث يتم تشغيل المهمة أو في ACR مختلفة في أي منطقة.

اعتبارات إضافية

  • الصور الأساسية لصور التطبيق - حالياً، تتعقب مهمة ACR فقط تحديثات الصورة الأساسية لصور التطبيق (وقت التشغيل). لا يتتبع تحديثات الصور الأساسية للصور المتوسطة (buildtime) المستخدمة في ملفات Dockerfiles متعددة المراحل.

  • ممكّن افتراضيّاً - عند إنشاء مهمة ACR باستخدام الأمر إنشاء مهمة az acr، تكون المهمة ممكنة افتراضيّاً للتشغيل عن طريق تحديث الصورة الأساسي. بمعنى، تم تعيين الخاصية base-image-trigger-enabled على True. إذا كنت تريد تعطيل هذا السلوك في مهمة ما، فقم بتحديث الخاصية إلى False. على سبيل المثال، قم بتشغيل الأمر التالي az acr task update :

    az acr task update --registry myregistry --name mytask --base-image-trigger-enabled False
    
  • تشغيل لتتبع التبعيات - لتمكين مهمة ACR لتحديد وتتبع تبعيات صورة حاوية - والتي تتضمن صورتها الأساسية - يجب عليك أولاً تشغيل المهمة لإنشاء الصورة مرة واحدة على الأقل. على سبيل المثال، قم بتشغيل المهمة يدويّاً باستخدام الأمر az acr task run.

  • علامة ثابتة للصورة الأساسية - لتشغيل مهمة عند تحديث الصورة الأساسية، يجب أن تحتوي الصورة الأساسية على علامة ثابتة، مثل node:9-alpine. يعد وضع العلامات هذا نموذجيّاً للصورة الأساسية التي يتم تحديثها باستخدام تصحيحات نظام التشغيل وإطار العمل إلى أحدث إصدار ثابت. إذا تم تحديث الصورة الأساسية بعلامة إصدار جديدة، فلن تؤدي إلى تشغيل مهمة. لمزيد من المعلومات حول وضع علامات على الصور، راجع إرشادات أفضل الممارسات.

  • مشغلات المهام الأخرى - في مهمة تم تشغيلها بواسطة تحديثات الصورة الأساسية، يمكنك أيضاً تمكين المشغلات استناداً إلى التزام التعليمات البرمجية المصدر أو جدول زمني. يمكن أن يؤدي تحديث الصورة الأساسي أيضاً إلى تشغيل multi-step task.

الخطوات التالية

راجع البرامج التعليمية التالية لمعرفة السيناريوهات للتنفيذ التلقائي لإنشاءات صور التطبيق بعد تحديث الصورة الأساسية: