Docker@2 - Docker v2 görevi
Docker görüntüleri oluşturun veya gönderin, oturum açın veya oturumu kapatın, kapsayıcıları başlatın veya durdurun ya da bir Docker komutu çalıştırın.
Docker görüntülerini derleyin veya gönderin, oturum açın veya oturumu kapatın ya da bir Docker komutu çalıştırın.
Syntax
# 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.
Girişler
containerRegistry
-
Kapsayıcı kayıt defteri
string
.
Docker kayıt defteri hizmeti bağlantısının adı. Kayıt defteriyle kimlik doğrulaması gerçekleştiren komutlar için gereklidir.
repository
-
Kapsayıcı deposu
string
. İsteğe bağlı. olduğunda command != login && command != logout && command != start && command != stop
kullanın.
Deponun adını belirtir.
repository
-
Kapsayıcı deposu
string
. İsteğe bağlı. olduğunda command != login && command != logout
kullanın.
Deponun adını belirtir.
command
-
Komut
string
. Gereklidir. İzin verilen değerler: buildAndPush
, build
, push
, login
, , logout
, start
, stop
. Varsayılan değer: buildAndPush
.
Çalıştırılacak Docker komutunu belirtir.
command
-
Komut
string
. Gereklidir. İzin verilen değerler: buildAndPush
, build
, push
, login
, logout
. Varsayılan değer: buildAndPush
.
Çalıştırılacak Docker komutunu belirtir.
Dockerfile
-
Dockerfile
string
. olduğunda command = build || command = buildAndPush
gereklidir. Varsayılan değer: **/Dockerfile
.
Docker dosyasının yolunu belirtir. Görev, görüntüyü oluşturmak için bulduğu ilk Docker dosyasını kullanır.
buildContext
-
Derleme bağlamı
string
. İsteğe bağlı. olduğunda command = build || command = buildAndPush
kullanın. Varsayılan değer: **
.
Derleme bağlamı yolunu belirtir. Docker dosyasını içeren dizini belirtmek için geçirin **
.
tags
-
Etiketler
string
. İsteğe bağlı. olduğunda command = build || command = push || command = buildAndPush
kullanın. Varsayılan değer: $(Build.BuildId)
.
Virgülle ayrılmış etiketlerin listesini belirtir. Bu etiketler , push
ve buildAndPush
komutlarında build
kullanılır.
arguments
-
Bağımsız değişken
string
. İsteğe bağlı. olduğunda command != login && command != logout && command != buildAndPush
kullanın.
Docker istemcisine geçirilecek ek bağımsız değişkenleri belirtir. Komut parametresinin değeri buildAndPush
kullanılıyorsa arguments özelliği yoksayılır.
Örnek: derleme komutunu kullanarak. --build-arg HTTP_PROXY=http://10.20.30.2:1234 --quiet
addPipelineData
-
Görüntülere İşlem hattı meta verileri ekleme
boolean
. Varsayılan değer: true
.
Varsayılan olarak, kaynak dal adı veya derleme kimliği gibi işlem hattı verileri eklenir ve izlenebilirliğe yardımcı olur. Örneğin, görüntüyü hangi işlem hattının derlediğini bulmak için bir görüntüyü inceleyebilirsiniz. Bu varsayılan davranışı geri çevirebilirsiniz.
addBaseImageData
-
Görüntülere temel görüntü meta verileri ekleme
boolean
. Varsayılan değer: true
.
Varsayılan olarak, temel görüntü adı veya özet gibi temel görüntü verileri eklenir ve izlenebilirliğe yardımcı olur. Bu varsayılan davranışı geri çevirebilirsiniz.
container
-
Kapsayıcı
string
. İsteğe bağlı. olduğunda command = start || command = stop
kullanın.
Başlatacak veya durdurulacak kapsayıcı kaynağının adını belirtir. Bu komutu ve stop
komutları ile start
kullanın.
Görev denetim seçenekleri
Tüm görevlerde görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz . Denetim seçenekleri ve ortak görev özellikleri.
Çıkış değişkenleri
Bu görev aşağı akış adımlarında, işlerde ve aşamalarda kullanabileceğiniz aşağıdaki çıkış değişkenlerini tanımlar.
DockerOutput
Komut çıkışını içeren dosyaların yolunu belirtir. komut için ayrı satırlarda iki dosya yolunu ve diğer komutlar için buildAndPush
bir dosya yolunu listeleyebilirsiniz.
Açıklamalar
Docker istemci ikili dosyasını doğrudan bir betikte kullanmak yerine Docker görevini kullanmanın temel avantajları aşağıdadır.
Docker kayıt defteri hizmeti bağlantısıyla tümleştirme - Görev, herhangi bir kapsayıcı kayıt defterine bağlanmak için Docker kayıt defteri hizmeti bağlantısının kullanılmasını kolaylaştırır. Oturum açtıktan sonra, Docker görevi tarafından kullanılan oturum açmadan yararlanarak diğer görevleri veya betikleri yürüten izleme görevleri ekleyebilirsiniz. Örneğin, herhangi bir Azure Container Registry oturum açmak için Docker görevini kullanın ve ardından kayıt defterine görüntü oluşturup göndermek için başka bir görev veya betik kullanın.
Etiket olarak eklenen meta veriler - Görev, aşağıdaki etiketlerde görüntüye izlenebilirlikle ilgili meta veriler ekler -
- 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
Sorun giderme
Docker görevi neden buildAndPush komutuna geçirilen bağımsız değişkenleri yoksayıyor?
buildAndPush
komutu kullanılarak yapılandırılan Docker görevi geçirilen bağımsız değişkenleri yoksayar çünkü bunlar iç oluşturma ve gönderme komutlarında belirsiz hale gelir. Komutunuzu ayrı oluşturma ve gönderme adımlarına bölebilir ve uygun bağımsız değişkenleri geçirebilirsiniz. Örneğin, bu stackoverflow gönderisine bakın.
DockerV2 yalnızca Docker kayıt defteri hizmeti bağlantısını destekler ve ARM hizmet bağlantısını desteklemez. Docker görevinde kimlik doğrulaması için mevcut bir Azure hizmet sorumlusunu (SPN) nasıl kullanabilirim?
Azure SPN kimlik bilgilerinizi kullanarak Docker kayıt defteri hizmet bağlantısı oluşturamazsınız. Kayıt defteri türü olarak diğerlerini seçin ve ayrıntıları aşağıdaki gibi sağlayın:
Docker Registry: Your container registry URL (eg. https://myacr.azurecr.io)
Docker ID: Service principal client ID
Password: Service principal key
Örnekler
Oturum aç
Aşağıdaki YAML kod parçacığında Docker kayıt defteri hizmeti bağlantısı kullanılarak bir kapsayıcı kayıt defteri oturum açma işlemi gösterilmektedir.
- task: Docker@2
displayName: Login to ACR
inputs:
command: login
containerRegistry: dockerRegistryServiceConnection1
Derleme ve Gönderme
adlı buildAndPush
bir kolaylık komutu, görüntülerin tek bir komutla derlenip kapsayıcı kayıt defterine gönderimini sağlar.
Aşağıdaki YAML kod parçacığı, bir görüntünün birden çok etiketini oluşturup birden çok kayıt defterine gönderme örneğidir.
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
Yukarıdaki kod parçacığında, ve görüntüleri contosoRepository:tag1
contosoRepository:tag2
oluşturulur ve ve dockerRegistryServiceConnection2
öğesine karşılık gelen kapsayıcı kayıt defterlerine dockerRegistryServiceConnection1
iletilir.
Kimliği doğrulanmış tüm kapsayıcı kayıt defterlerini aynı anda oluşturmak ve göndermek yerine belirli bir kimliği doğrulanmış kapsayıcı kayıt defteri oluşturmak ve göndermek istiyorsanız, girişi command: buildAndPush
gösterildiği gibi açıkça belirtincontainerRegistry
:
steps:
- task: Docker@2
displayName: Build and Push
inputs:
command: buildAndPush
containerRegistry: dockerRegistryServiceConnection1
repository: contosoRepository
tags: |
tag1
tag2
Oturumu Kapat
Aşağıdaki YAML kod parçacığı, Docker kayıt defteri hizmet bağlantısı kullanarak bir kapsayıcı kayıt defterinden nasıl çıkış yapılacağını gösterir.
- task: Docker@2
displayName: Logout of ACR
inputs:
command: logout
containerRegistry: dockerRegistryServiceConnection1
Başlat/durdur
İş ve hizmet kapsayıcılarını denetlemek için bu görevi kullanın. Bu kullanım nadirdir, ancak bazen benzersiz koşullarda kullanılır.
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
Diğer komutlar ve bağımsız değişkenler
Komut ve bağımsız değişken girişleri, örnekte gösterildiği gibi Docker istemci ikili dosyasını kullanarak derleme veya gönderme komutları için ek bağımsız değişkenler geçirmek için kullanılır.
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
Not
Bağımsız değişken girişi dışındaki buildAndPush
tüm komutlar için değerlendirilir.
buildAndPush
bir kolaylık komutudur (build
ve ardından push
), arguments
kullanıldığında giriş yoksayılır.
Gereksinimler
Gereksinim | Açıklama |
---|---|
İşlem hattı türleri | YAML, Klasik derleme, Klasik sürüm |
Üzerinde çalıştırılır | Agent, DeploymentGroup |
Talep | Hiçbiri |
Özellikler | Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz. |
Komut kısıtlamaları | Herhangi biri |
Ayarlanabilir değişkenler | Herhangi biri |
Aracı sürümü | 2.172.0 veya üzeri |
Görev kategorisi | Oluşturma |
Gereksinim | Açıklama |
---|---|
İşlem hattı türleri | YAML, Klasik derleme, Klasik sürüm |
Üzerinde çalıştırılır | Agent, DeploymentGroup |
Talep | Hiçbiri |
Özellikler | Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz. |
Komut kısıtlamaları | Herhangi biri |
Ayarlanabilir değişkenler | Herhangi biri |
Aracı sürümü | Desteklenen tüm aracı sürümleri. |
Görev kategorisi | Yapı |