Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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üleri oluşturun veya gönderin, oturum açın veya oturumu kapatın ya da bir Docker komutu çalıştırın.
Sözdizimi
# 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.
Girişler
kapsayıcı kayıt deftericontainerRegistry
-
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
. Opsiyonel.
command != login && command != logout && command != start && command != stop
olduğunda kullanın.
Deponun adını belirtir.
repository
-
Kapsayıcı deposu
string
. Opsiyonel.
command != login && command != logout
olduğunda kullanın.
Deponun adını belirtir.
command
-
Komut
string
. Gerekli. İ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
. Gerekli. İzin verilen değerler: buildAndPush
, build
, push
, login
, logout
. Varsayılan değer: buildAndPush
.
Çalıştırılacak Docker komutunu belirtir.
DockerfileDockerfile
-
string
.
command = build || command = buildAndPush
gerekir. 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
. Opsiyonel.
command = build || command = buildAndPush
olduğunda kullanın. Varsayılan değer: **
.
Derleme bağlamı yolunu belirtir. Docker dosyasını içeren dizini belirtmek için **
geçirin.
tags
-
Etiketleri
string
. Opsiyonel.
command = build || command = push || command = buildAndPush
olduğunda kullanın. Varsayılan değer: $(Build.BuildId)
.
Virgülle ayrılmış etiketlerin listesini belirtir. Bu etiketler build
, push
ve buildAndPush
komutlarında kullanılır.
bağımsız değişkenleriarguments
-
string
. Opsiyonel.
command != login && command != logout && command != buildAndPush
olduğunda kullanın.
Docker istemcisine geçirecek ek bağımsız değişkenleri belirtir. Komut parametresi için buildAndPush
değeri 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 izlenebilirlik konusunda 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 izlenebilirlik konusunda yardımcı olur. Bu varsayılan davranışı geri çevirebilirsiniz.
kapsayıcıcontainer
-
string
. Opsiyonel.
command = start || command = stop
olduğunda kullanın.
Başlatacak veya durdurulacak kapsayıcı kaynağının adını belirtir. bu komutu start
ve stop
komutlarıyla kullanın.
Görev denetimi seçenekleri
Tüm görevlerin, 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örevaşağıdaki
DockerOutput
Komut çıktısını içeren dosyaların yolunu belirtir.
buildAndPush
komutu için ayrı satırlarda iki dosya yolunu ve diğer komutlar için bir dosya yolunu listeleyebilirsiniz.
Açıklamalar
Aşağıda, docker istemci ikili dosyasını doğrudan bir betikte kullanmak yerine Docker görevini kullanmanın temel avantajları yer alı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'de 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 bir Docker görevi, iç derleme ve gönderme komutları için belirsiz hale geldiği için geçirilen bağımsız değişkenleri yoksayar. 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ünden 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 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
buildAndPush
adlı bir convenience komutu, görüntülerin tek bir komutla derlenip kapsayıcı kayıt defterine gönderilip gönderilip oluşturulmasını sağlar.
Aşağıdaki YAML kod parçacığı, bir görüntünün birden çok etiketini birden çok kayıt defterine derleme ve 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 görüntüler contosoRepository:tag1
ve contosoRepository:tag2
oluşturulur ve dockerRegistryServiceConnection1
ve dockerRegistryServiceConnection2
karşılık gelen kapsayıcı kayıt defterlerine 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, containerRegistry
ile command: buildAndPush
girişini açıkça belirtin:
steps:
- task: Docker@2
displayName: Build and Push
inputs:
command: buildAndPush
containerRegistry: dockerRegistryServiceConnection1
repository: contosoRepository
tags: |
tag1
tag2
Oturumu kapatma
Aşağıdaki YAML kod parçacığı, Docker kayıt defteri hizmeti 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 durumlarda 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
Uyarı
bağımsız değişken girişi, buildAndPush
dışındaki tüm komutlar için değerlendirilir.
buildAndPush
bir kolaylık komutudur (build
ardından push
), arguments
giriş kullanıldığında yoksayılır.
Gereksinimler
Gereksinim | Açıklama |
---|---|
İşlem hattı türleri | YAML, Klasik derleme, Klasik sürüm |
Üzerinde çalışır | Agent, DeploymentGroup |
Talepleri | Hiç kimse |
Özellikleri | Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz. |
Komut kısıtlamaları | Herhangi bir |
Ayarlanabilir değişkenleri | Herhangi bir |
Aracı sürümü | 2.172.0 veya üzeri |
Görev kategorisi | İnşa et |
Gereksinim | Açıklama |
---|---|
İşlem hattı türleri | YAML, Klasik derleme, Klasik sürüm |
Üzerinde çalışır | Agent, DeploymentGroup |
Talepleri | Hiç kimse |
Özellikleri | Bu görev, işteki sonraki görevler için herhangi bir talebi karşılamaz. |
Komut kısıtlamaları | Herhangi bir |
Ayarlanabilir değişkenleri | Herhangi bir |
Aracı sürümü | Desteklenen tüm aracı sürümleri. |
Görev kategorisi | İnşa et |