إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
إنشاء صور Docker أو دفعها، أو تسجيل الدخول أو تسجيل الخروج، أو بدء تشغيل الحاويات أو إيقافها، أو تشغيل أمر Docker.
إعراب
# Docker v2
# Build or push Docker images, login or logout, start or stop containers, or run a Docker command.
- task: Docker@2
inputs:
# Container Repository
#containerRegistry: # string. Container registry.
#repository: # string. Optional. Use when command != login && command != logout && command != start && command != stop. Container repository.
# Commands
command: 'buildAndPush' # 'buildAndPush' | 'build' | 'push' | 'login' | 'logout' | 'start' | 'stop'. Required. Command. Default: buildAndPush.
Dockerfile: '**/Dockerfile' # string. Required when command = build || command = buildAndPush. Dockerfile. Default: **/Dockerfile.
#buildContext: '**' # string. Optional. Use when command = build || command = buildAndPush. Build context. Default: **.
#tags: '$(Build.BuildId)' # string. Optional. Use when command = build || command = push || command = buildAndPush. Tags. Default: $(Build.BuildId).
#arguments: # string. Optional. Use when command != login && command != logout && command != buildAndPush. Arguments.
#addPipelineData: true # boolean. Add Pipeline metadata to image(s). Default: true.
#addBaseImageData: true # boolean. Add base image metadata to image(s). Default: true.
#container: # string. Optional. Use when command = start || command = stop. Container.
المدخلات
سجل حاوية containerRegistry -
Person.
اسم اتصال خدمة تسجيل Docker. مطلوب للأوامر التي تقوم بإجراء المصادقة باستخدام سجل.
مستودع حاوية repository -
Person. اختياري. استخدم عند command != login && command != logout && command != start && command != stop.
تحديد اسم المستودع.
أوامر
Person. مطلوب. القيم المسموح بها: buildAndPushbuildpushloginlogoutstartstop. القيمة الافتراضية: buildAndPush.
تحديد أمر Docker لتشغيله.
Dockerfile
-
Dockerfile
Person. مطلوب عند command = build || command = buildAndPush. القيمة الافتراضية: **/Dockerfile.
تحديد المسار إلى ملف Docker. تستخدم المهمة أول ملف Docker تجده لإنشاء الصورة.
سياق buildContext - Build
Person. اختياري. استخدم عند command = build || command = buildAndPush. القيمة الافتراضية: **.
تحديد المسار إلى سياق البناء. مرر ** للإشارة إلى الدليل الذي يحتوي على ملف Docker.
علامات tags -
Person. اختياري. استخدم عند command = build || command = push || command = buildAndPush. القيمة الافتراضية: $(Build.BuildId).
قائمة بالوسوم على خطوط منفصلة. تستخدم هذه العلامات في buildأوامر ، push، و buildAndPush .
مثال:
tags: |
tag1
tag2
الوسيطات arguments -
Person. اختياري. استخدم عند command != login && command != logout && command != buildAndPush.
تحديد وسيطات إضافية لتمريرها إلى عميل Docker. إذا كنت تستخدم القيمة buildAndPush لمعلمة الأمر، يتم تجاهل خاصية الوسيطات.
مثال: باستخدام أمر الإنشاء، --build-arg HTTP_PROXY=http://10.20.30.2:1234 --quiet.
addPipelineData
-
إضافة بيانات تعريف البنية الأساسية لبرنامج ربط العمليات التجارية إلى الصورة (الصور)
Person. القيمة الافتراضية: true.
بشكل افتراضي، تتم إضافة بيانات البنية الأساسية لبرنامج ربط العمليات التجارية مثل اسم فرع المصدر أو معرف البنية والمساعدة في إمكانية التتبع. على سبيل المثال، يمكنك فحص صورة لمعرفة المسار الذي أنشأ الصورة. يمكنك إلغاء الاشتراك في هذا السلوك الافتراضي.
addBaseImageData
-
إضافة بيانات تعريف الصورة الأساسية إلى صورة (صور)
Person. القيمة الافتراضية: true.
بشكل افتراضي، تتم إضافة بيانات الصورة الأساسية مثل اسم الصورة الأساسية أو الملخص وتساعد في إمكانية التتبع. يمكنك إلغاء الاشتراك في هذا السلوك الافتراضي.
حاوية container -
Person. اختياري. استخدم عند command = start || command = stop.
يحدد اسم مورد الحاوية لبدء التشغيل أو الإيقاف. استخدم هذا الأمر مع أوامر startstop.
خيارات التحكم بالمهمة
تحتوي جميع المهام على خيارات التحكم بالإضافة إلى مدخلات المهام الخاصة بها. لمزيد من المعلومات، راجع خيارات التحكم وخصائص المهمة الشائعة.
متغيرات الإخراج
تحدد هذه المهمة متغيرات الإخراج التالية، والتي يمكنك استهلاكها في خطوات انتقال البيانات من الخادم والمهام والمراحل.
DockerOutput
تحديد المسار إلى الملفات التي تحتوي على إخراج الأمر. يمكنك سرد مساري ملف على أسطر منفصلة للأمر buildAndPush، ومسار ملف واحد لأي أمر آخر.
ملاحظات
فيما يلي الفوائد الرئيسية لاستخدام مهمة Docker بدلا من استخدام ثنائي عميل Docker مباشرة في برنامج نصي.
التكامل مع اتصال خدمة تسجيل Docker - تسهل المهمة استخدام اتصال خدمة تسجيل Docker للاتصال بأي سجل حاوية. بمجرد تسجيل الدخول، يمكنك إضافة مهام المتابعة التي تنفذ مهاما أو برامج نصية أخرى عن طريق الاستفادة من تسجيل الدخول المستخدم من قبل مهمة Docker. على سبيل المثال، استخدم مهمة Docker لتسجيل الدخول إلى أي Azure Container Registry، ثم استخدم مهمة أو برنامج نصي آخر لإنشاء صورة ودفعها إلى السجل.
بيانات التعريف المضافة كتسميات - تضيف المهمة بيانات التعريف المتعلقة بالتتبع إلى الصورة في التسميات التالية -
- com.azure.dev.image.build.buildnumber
- com.azure.dev.image.build.builduri
- com.azure.dev.image.build.definitionname
- com.azure.dev.image.build.repository.name
- com.azure.dev.image.build.repository.uri
- com.azure.dev.image.build.sourcebranchname
- com.azure.dev.image.build.sourceversion
- com.azure.dev.image.release.definitionname
- com.azure.dev.image.release.releaseid
- com.azure.dev.image.release.releaseweburl
- com.azure.dev.image.system.teamfoundationcollectionuri
- com.azure.dev.image.system.teamproject
استكشاف الاخطاء
لماذا تتجاهل مهمة Docker الوسيطات التي تم تمريرها إلى الأمر buildAndPush؟
تتجاهل مهمة Docker التي تم تكوينها باستخدام الأمر buildAndPush الوسيطات التي تم تمريرها لأنها تصبح غامضة في أوامر الإنشاء والدفع الداخلية. يمكنك تقسيم الأمر إلى خطوات بناء ودفع منفصلة وتمرير الوسيطات المناسبة. على سبيل المثال، راجع هذا stackoverflow بعد.
يدعم DockerV2 اتصال خدمة تسجيل Docker فقط ولا يدعم اتصال خدمة ARM. كيف يمكنني استخدام كيان خدمة Azure (SPN) موجود للمصادقة في مهمة Docker؟
يمكنك إنشاء اتصال خدمة تسجيل Docker باستخدام بيانات اعتماد Azure SPN. اختر الآخرين من نوع التسجيل وقدم التفاصيل على النحو التالي:
Docker Registry: Your container registry URL (eg. https://myacr.azurecr.io)
Docker ID: Service principal client ID
Password: Service principal key
امثله
تسجيل الدخول
يظهر مقتطف YAML التالي تسجيل تسجيل حاوية باستخدام اتصال خدمة سجل Docker.
- task: Docker@2
displayName: Login to ACR
inputs:
command: login
containerRegistry: dockerRegistryServiceConnection1
الإنشاء والدفع
يسمح أمر الراحة المسمى buildAndPush بإنشاء ودفع الصور إلى سجل حاوية في أمر واحد.
مقتطف YAML التالي هو مثال على إنشاء ودفع علامات متعددة لصورة إلى سجلات متعددة.
steps:
- task: Docker@2
displayName: Login to ACR
inputs:
command: login
containerRegistry: dockerRegistryServiceConnection1
- task: Docker@2
displayName: Login to Docker Hub
inputs:
command: login
containerRegistry: dockerRegistryServiceConnection2
- task: Docker@2
displayName: Build and Push
inputs:
command: buildAndPush
repository: contosoRepository # username/contosoRepository for DockerHub
tags: |
tag1
tag2
في القصاصة البرمجية أعلاه، يتم إنشاء الصور contosoRepository:tag1contosoRepository:tag2 ودفعها إلى سجلات الحاويات المقابلة dockerRegistryServiceConnection1dockerRegistryServiceConnection2.
إذا كنت ترغب في إنشاء سجل حاويات مصادق عليه محدد ودفعه إلى سجل حاوية مصادق عليه محدد بدلا من الإنشاء والدفع إلى جميع سجلات الحاويات المصادق عليها في وقت واحد، فحدد صراحة الإدخال containerRegistry مع command: buildAndPush كما هو موضح:
steps:
- task: Docker@2
displayName: Build and Push
inputs:
command: buildAndPush
containerRegistry: dockerRegistryServiceConnection1
repository: contosoRepository
tags: |
tag1
tag2
تسجيل الخروج
يوضح مقتطف YAML التالي كيفية تسجيل الخروج من سجل حاوية باستخدام اتصال خدمة سجل Docker.
- task: Docker@2
displayName: Logout of ACR
inputs:
command: logout
containerRegistry: dockerRegistryServiceConnection1
بدء/إيقاف
استخدم هذه المهمة للتحكم في حاويات الوظائف والخدمة. هذا الاستخدام غير شائع، ولكنه يستخدم أحيانا في ظروف فريدة.
resources:
containers:
- container: builder
image: ubuntu:18.04
steps:
- script: echo "I can run inside the container (it starts by default)"
target:
container: builder
- task: Docker@2
inputs:
command: stop
container: builder
# any task beyond this point would not be able to target the builder container
# because it's been stopped
أوامر ووسيطات أخرى
يتم استخدام إدخالات الأوامر والوسيطات لتمرير وسيطات إضافية لأوامر الإنشاء أو الدفع باستخدام ثنائي عميل Docker كما هو موضح في المثال.
steps:
- task: Docker@2
displayName: Login to ACR
inputs:
command: login
containerRegistry: dockerRegistryServiceConnection1
- task: Docker@2
displayName: Build
inputs:
command: build
repository: contosoRepository # username/contosoRepository for DockerHub
tags: tag1
arguments: --secret id=mysecret,src=mysecret.txt
ملاحظه
يتم تقييم إدخال الوسيطات لكافة الأوامر باستثناء buildAndPush.
buildAndPush هو أمر ملائم (build متبوعا push)، يتم تجاهل الإدخال arguments عند استخدامه.
المتطلبات
| احتياج | الوصف |
|---|---|
| أنواع البنية الأساسية لبرنامج ربط العمليات التجارية | YAML، الإصدار الكلاسيكي، الإصدار الكلاسيكي |
| يعمل على | العامل، DeploymentGroup |
| متطلبات | بلا |
| قدرات | لا تفي هذه المهمة بأي طلبات للمهام اللاحقة في الوظيفة. |
| قيود الأمر | أي |
| متغيرات Settable | أي |
| إصدار العامل | 2.172.0 أو أحدث |
| فئة المهمة | بنى |