Docker@2 - مهمة Docker v2
إنشاء صور Docker أو دفعها، أو تسجيل الدخول أو تسجيل الخروج، أو بدء تشغيل الحاويات أو إيقافها، أو تشغيل أمر Docker.
إنشاء صور 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.
# 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.
#container: # string. Optional. Use when command = start || command = stop. Container.
# Docker v2
# Build or push Docker images, login or logout, or run a Docker command.
- task: Docker@2
inputs:
# Container Repository
#containerRegistry: # string. Container registry.
#repository: # string. Optional. Use when command != login && command != logout. Container repository.
# Commands
command: 'buildAndPush' # 'buildAndPush' | 'build' | 'push' | 'login' | 'logout'. 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.
# Docker v2
# Build or push Docker images, login or logout, or run a Docker command.
- task: Docker@2
inputs:
# Container Repository
#containerRegistry: # string. Container registry.
#repository: # string. Optional. Use when command != login && command != logout. Container repository.
# Commands
command: 'buildAndPush' # 'buildAndPush' | 'build' | 'push' | 'login' | 'logout'. 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.
الإدخالات
containerRegistry
- سجل الحاوية
string
.
اسم اتصال خدمة تسجيل Docker. مطلوب للأوامر التي تقوم بالمصادقة باستخدام سجل.
repository
- مستودع الحاوية
string
. اختياري. استخدم عندما command != login && command != logout && command != start && command != stop
.
يحدد اسم المستودع.
repository
- مستودع الحاوية
string
. اختياري. استخدم عندما command != login && command != logout
.
يحدد اسم المستودع.
command
- الامر
string
. مطلوب القيم المسموح بها: buildAndPush
، build
، push
، login
، logout
، start
. stop
القيمة الافتراضية: buildAndPush
.
يحدد أمر Docker للتشغيل.
command
- الامر
string
. مطلوب القيم المسموح بها: buildAndPush
، build
، push
، login
، logout
. القيمة الافتراضية: buildAndPush
.
يحدد أمر Docker للتشغيل.
Dockerfile
- Dockerfile
string
. مطلوب عند command = build || command = buildAndPush
. القيمة الافتراضية: **/Dockerfile
.
يحدد المسار إلى ملف Docker. تستخدم المهمة أول ملف Docker تجده لإنشاء الصورة.
buildContext
- سياق الإنشاء
string
. اختياري. استخدم عندما command = build || command = buildAndPush
. القيمة الافتراضية: **
.
يحدد المسار إلى سياق الإنشاء. مرر **
للإشارة إلى الدليل الذي يحتوي على ملف Docker.
tags
- العلامات
string
. اختياري. استخدم عندما command = build || command = push || command = buildAndPush
. القيمة الافتراضية: $(Build.BuildId)
.
يحدد قائمة بالعلامات المفصولة بفواصل. يتم استخدام هذه العلامات في build
الأوامر و buildAndPush
push
.
arguments
- الحجج
string
. اختياري. استخدم عندما command != login && command != logout && command != buildAndPush
.
يحدد وسيطات إضافية لتمريرها إلى عميل Docker. إذا كنت تستخدم قيمة buildAndPush
معلمة الأمر، يتم تجاهل خاصية الوسيطات.
مثال: باستخدام أمر الإنشاء، --build-arg HTTP_PROXY=http://10.20.30.2:1234 --quiet
.
addPipelineData
- إضافة بيانات تعريف البنية الأساسية لبرنامج ربط العمليات التجارية إلى الصورة (الصور)
boolean
. القيمة الافتراضية: true
.
بشكل افتراضي، تتم إضافة بيانات البنية الأساسية لبرنامج ربط العمليات التجارية مثل اسم فرع المصدر أو معرف البناء وتساعد في إمكانية التتبع. على سبيل المثال، يمكنك فحص صورة لمعرفة البنية الأساسية لبرنامج ربط العمليات التجارية التي أنشأت الصورة. يمكنك إلغاء الاشتراك في هذا السلوك الافتراضي.
addBaseImageData
- إضافة بيانات تعريف الصورة الأساسية إلى الصورة (الصور)
boolean
. القيمة الافتراضية: true
.
بشكل افتراضي، تتم إضافة بيانات الصورة الأساسية مثل اسم الصورة الأساسية أو الملخص وتساعد في إمكانية التتبع. يمكنك إلغاء الاشتراك في هذا السلوك الافتراضي.
container
- حاويه
string
. اختياري. استخدم عندما command = start || command = stop
.
يحدد اسم مورد الحاوية للبدء أو الإيقاف. استخدم هذا الأمر مع start
الأوامر و stop
.
خيارات التحكم بالمهمة
تحتوي جميع المهام على خيارات التحكم بالإضافة إلى مدخلات المهام الخاصة بها. لمزيد من المعلومات، راجع خيارات التحكم وخصائص المهمة الشائعة.
متغيرات الإخراج
تحدد هذه المهمة متغيرات الإخراج التالية، والتي يمكنك استهلاكها في خطوات انتقال البيانات من الخادم والوظائف والمراحل.
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:tag2
contosoRepository:tag1
ودفعها إلى سجلات الحاوية المقابلة ل dockerRegistryServiceConnection1
وdockerRegistryServiceConnection2
.
إذا كنت ترغب في إنشاء سجل حاوية مصادق عليه محدد ودفعه بدلا من إنشاء ودفع جميع سجلات الحاويات المصادق عليها في وقت واحد، فحدد 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، الإصدار الكلاسيكي، الإصدار الكلاسيكي |
يعمل على | Agent, DeploymentGroup |
المطالب | بلا |
القدرات | لا تفي هذه المهمة بأي طلبات للمهام اللاحقة في الوظيفة. |
قيود الأوامر | أي |
متغيرات Settable | أي |
إصدار الوكيل | 2.172.0 أو أحدث |
فئة المهمة | البنية |
المتطلبات | الوصف |
---|---|
أنواع البنية الأساسية لبرنامج ربط العمليات التجارية | YAML، الإصدار الكلاسيكي، الإصدار الكلاسيكي |
يعمل على | Agent, DeploymentGroup |
المطالب | بلا |
القدرات | لا تفي هذه المهمة بأي طلبات للمهام اللاحقة في الوظيفة. |
قيود الأوامر | أي |
متغيرات Settable | أي |
إصدار الوكيل | جميع إصدارات العامل المدعومة. |
فئة المهمة | البنية |
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ