التنفيذ التلقائي لعمليات إنشاء صور الحاوية وصيانتها باستخدام مهام ACR

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

ما هي مهام ACR؟

مهام ACR عبارة عن مجموعة من الميزات داخل Azure Container Registry. يوفر إنشاء صورة حاوية مستنداً إلى مجموعة النظراء للأنظمة الأساسية بما في ذلك Linux وWindows وARM، ويمكنه التنفيذ التلقائي لـ تصحيح نظام التشغيل وإطار العمل لحاويات Docker. لا تقوم مهام ACR فقط بتوسيع دورة تطوير "الحلقة الداخلية" الخاصة بك إلى السحابة من خلال إنشاءات صورة الحاوية عند الطلب، ولكنها تتيح أيضاً عمليات الإنشاء التلقائية التي يتم تشغيلها بواسطة تحديثات التعليمات البرمجية المصدر، أو التحديثات على الصورة الأساسية للحاوية، أو أجهزة ضبط الوقت. على سبيل المثال، باستخدام مشغلات تحديث الصورة الأساسية، يمكنك التنفيذ التلقائي لسير عمل تصحيح نظام التشغيل وإطار عمل التطبيق، والحفاظ على بيئات آمنة مع الالتزام بمبادئ الحاويات غير القابلة للتغيير.

هام

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

تحذير

يرجى العلم أنه قد يتم تسجيل أي معلومات مقدمة على سطر الأوامر أو كجزء من URI كجزء من تتبع تشخيص Azure Container Registry (ACR). يتضمن ذلك البيانات الحساسة مثل بيانات الاعتماد ورمز الوصول الشخصي GitHub ومعلومات آمنة أخرى. توخي الحذر لمنع أي مخاطر أمنية محتملة، من الضروري تجنب تضمين التفاصيل الحساسة في خطوط الأوامر أو معرفات URI التي تخضع للتسجيل التشخيصي.

سيناريوهات المهمة

تدعم ACR Tasks عدة سيناريوهات لإنشاء صور الحاوية وغيرها من القطع الأثرية وصيانتها. راجع الأقسام التالية في هذه المقالة للحصول على التفاصيل.

تحتوي كل مهمة ACR على سياق رمز مصدر مرتبط - موقع مجموعة ملفات المصدر المستخدمة لإنشاء صورة حاوية أو عنصر آخر. تتضمن سياقات المثال مستودع Git أو نظام الملفات المحلي.

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

مهمة سريعة

إن دورة تطوير الحلقة الداخلية، والعملية التكرارية لكتابة التعليمات البرمجية، وبناء واختبار التطبيق الخاص بك قبل الالتزام بالتحكم في المصدر، هي بالفعل بداية إدارة دورة حياة الحاوية.

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

باستخدام التنسيق المألوف docker build، يأخذ الأمر az acr build فيAzure CLI سياق (مجموعة الملفات المراد إنشاؤها)، ويرسلها إلى مهام ACR، وبشكل ظاهري، يدفع الصورة المبنية إلى التسجيل الخاص بها عند الانتهاء.

للحصول على مقدمة، راجع البداية السريعة لـ إنشاء صورة حاوية وتشغيلها في Azure Container Registry.

تم تصميم مهام ACR كدورة حياة حاوية بدائية. على سبيل المثال، قم بدمج مهام ACR في حل CI / CD الخاص بك. من خلال تنفيذ تسجيل الدخول من a إلى z باستخدام مبدأ الخدمة، يمكن لحل CI / CD عندئذٍ إصدار أوامر az acr build لبدء إنشاءات الصور.

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

تلميح

إذا كنت تريد إنشاء صورة ودفعها مباشرةً من التعليمات البرمجية المصدر، دون Dockerfile، فإن Azure Container Registry يوفر الأمر az acr pack build (معاينة). تنشئ هذه الأداة صورة من التعليمات البرمجية المصدر للتطبيق وتدفعها باستخدام Cloud Native Buildpacks.

قم بتشغيل المهمة في تحديث التعليمات البرمجية المصدر

قم بتشغيل إنشاء صورة حاوية أو مهمة متعددة الخطوات عند الالتزام بالرمز، أو عند إجراء طلب سحب أو تحديثه، إلى مستودع Git عام أو خاص في GitHub أو Azure DevOps. على سبيل المثال، قم بتكوين مهمة بناء باستخدام الأمر Azure CLI إنشاء مهمة az acr عن طريق تحديد مستودع Git وفرع وملف Docker بشكل اختياري. عندما يقوم الفريق بتحديث التعليمات البرمجية في المستودع، يقوم webhook ACR Tasks المنشأ بتشغيل بنية صورة الحاوية المعرفة في المستودع.

تدعم مهام ACR المشغلات التالية عند تعيين Git repo كسياق للمهمة:

المشغِّل ممكّن بشكل افتراضي
تثبيت ‏‏نعم‬
طلب سحب لا

إشعار

حاليًا، لا تدعم مهام ACR تنفيذ أو سحب مشغلات الطلب في مستودعات GitHub Enterprise.

تعرف على كيفية تشغيل الإنشاءات بناءً على الالتزام بالتعليمات البرمجية المصدرة في البرنامج التعليمي الثاني لمهام ACR، التنفيذ التلقائي لعمليات إنشاء صورة الحاوية باستخدامAzure Container Registry Tasks.

الرمز المميز للوصول الشخصي

لتكوين مشغل تحديث التعليمات البرمجية المصدر، تحتاج إلى توفير رمز مميز للوصول شخصي للمهمة (PAT) لتعيين خطاف الويب في مستودع GitHub العام أو الخاص أو Azure DevOps. النطاقات المطلوبة ل PAT هي كما يلي:

نوع المستودع GitHub DevOps
المستودع العام المستودع: الحالة
public_repo
التعليمة البرمجية (قراءة)
المستودع الخاص المستودع (تحكم كامل) التعليمة البرمجية (قراءة)

لإنشاء PAT، راجع وثائق GitHub أو Azure DevOps.

تنفيذ نظام التشغيل وإصلاح إطار العمل تلقائيّاً

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

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

تعرف على المزيد حول مشغلات تحديث الصورة الأساسية لمهام ACR. وتعلم كيفية تشغيل إنشاء صورة عند دفع صورة أساسية إلى سجل حاوية في البرنامج التعليمي أتمتة إنشاء صورة الحاوية عند تحديث صورة أساسية في سجل حاوية Azure

جدولة عرض توضيحي

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

مهام متعددة الخطوات

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

على سبيل المثال يمكنك إنشاء مهمة متعددة الخطوات التي تقوم بأتمتة ما يلي:

  1. قم إنشاء صورة تطبيق ويب
  2. قم تشغيل حاوية تطبيق ويب
  3. قم إنشاء صورة اختبار تطبيق ويب
  4. قم تشغيل حاوية اختبار تطبيق ويب الذي يقوم بإجراء اختبارات مقابل حاوية التطبيق قيد التشغيل
  5. إذا تم اجتياز الاختبارات، قم بإنشاء حزمة أرشيف مخطط Helm
  6. قم بتنفيذ helm upgrade باستخدام حزمة أرشيف مخطط هيلم الجديدة

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

تعرف على المهام متعددة الخطوات في تشغيل مهام الإنشاء والاختبار والتصحيح متعددة الخطوات في مهام ACR.

مواقع السياق

يعرض الجدول التالي أمثلة لمواقع السياق المدعومة لمهام ACR:

موقع السياق ‏‏الوصف مثال
نظام الملفات المحلي الملفات الموجودة في دليل على نظام الملفات المحلي. /home/user/projects/myapp
فرع GitHub الرئيسي الملفات الموجودة داخل الفرع الرئيسي (أو الظاهري الآخر) لمستودع GitHub العام أو الخاص. https://github.com/gituser/myapp-repo.git
فرع GitHub فرع محدد من اتفاقيات GitHub العامة أو الخاصة. https://github.com/gituser/myapp-repo.git#mybranch
مجلد فرعي GitHub الملفات الموجودة في مجلد فرعي في مستودع GitHub عام أو خاص. يوضح المثال مجموعة من مواصفات الفرع والمجلد الفرعي. https://github.com/gituser/myapp-repo.git#mybranch:myfolder
التزام GitHub التزام محدد في مستودع GitHub عام أو خاص. يوضح المثال مجموعة من تجزئة الالتزام (SHA) ومواصفات المجلد الفرعي. https://github.com/gituser/myapp-repo.git#git-commit-hash:myfolder
المجلد الفرعي Azure DevOps الملفات الموجودة في مجلد فرعي في مستودع Azure عام أو خاص. يوضح المثال مجموعة من مواصفات الفرع والمجلد الفرعي. https://dev.azure.com/user/myproject/_git/myapp-repo#mybranch:myfolder
tarball عن بُعد الملفات الموجودة في أرشيف مضغوط على خادم ويب بعيد. http://remoteserver/myapp.tar.gz
قطعة أثرية في سجل الحاويات ملفاتOCI artifact في مستودع تسجيل الحاوية. oci://myregistry.azurecr.io/myartifact:mytag

إشعار

عند استخدام مستودع Git كسياق لمهمة تم تشغيلها بواسطة تحديث التعليمة البرمجية للمصدر، فإنك تحتاج إلى توفير رمز مميز للوصول شخصي (PAT).

منصات الصور

بشكل ظاهري، تقوم مهام ACR بإنشاء صور لنظام التشغيل Linux وبنية amd64. حدد علامة --platform لإنشاء صور Windows أو صور Linux للبنيات الأخرى. حدد نظام التشغيل والبنية المدعومة اختيارياً بتنسيق نظام التشغيل / البنية (على سبيل المثال، --platform Linux/arm). بالنسبة إلى معماريات ARM، حدد بشكل اختياري متغيراً في تنسيق نظام التشغيل / العمارة / المتغير (على سبيل المثال، --platform Linux/arm64/v8):

نظام التشغيل بناء الأنظمة
Linux amd64
arm
arm64
386
Windows amd64

عرض إخراج المهام

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

تعرف على المزيد حول عرض سجلات المهام وإدارتها.

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

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

اختيارياً، قم بتثبيت Docker Extension for Visual Studio Code وAzure Account للعمل مع سجلات حاوية Microsoft Azure. اسحب الصور وقم برفعها إلى سجل حاوية Azure، أو قم بتشغيل مهام ACR، كل ذلك ضمن Visual Studio Code.