Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Crie ou envie imagens do Docker, efetue login ou logout, inicie ou pare contêineres ou execute um comando do Docker.
Crie ou envie imagens do Docker, faça login ou logout ou execute um comando do Docker.
Sintaxe
# 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.
Insumos
containerRegistry
-
Registro de contêiner
string
.
Nome da conexão do serviço de registro do Docker . Necessário para comandos que executam autenticação com um registro.
repository
-
Repositório de contêiner
string
. Opcional. Use quando command != login && command != logout && command != start && command != stop
.
Especifica o nome do repositório.
repository
-
Repositório de contêiner
string
. Opcional. Use quando command != login && command != logout
.
Especifica o nome do repositório.
command
-
de comando
string
. Obrigatório. Valores permitidos: buildAndPush
, build
, push
, login
, logout
, start
, stop
. Valor padrão: buildAndPush
.
Especifica o comando do Docker a ser executado.
command
-
de comando
string
. Obrigatório. Valores permitidos: buildAndPush
, build
, push
, login
, logout
. Valor padrão: buildAndPush
.
Especifica o comando do Docker a ser executado.
Dockerfile
-
Dockerfile
string
. Necessário quando command = build || command = buildAndPush
. Valor padrão: **/Dockerfile
.
Especifica o caminho para o arquivo do Docker. A tarefa usa o primeiro arquivo do Docker encontrado para criar a imagem.
buildContext
-
Construir contexto
string
. Opcional. Use quando command = build || command = buildAndPush
. Valor padrão: **
.
Especifica o caminho para o contexto de compilação. Passe **
para indicar o diretório que contém o arquivo do Docker.
tags
-
Etiquetas
string
. Opcional. Use quando command = build || command = push || command = buildAndPush
. Valor padrão: $(Build.BuildId)
.
Especifica uma lista de tags separadas por vírgula. Essas tags são usadas nos comandos build
, push
e buildAndPush
.
arguments
-
Argumentos
string
. Opcional. Use quando command != login && command != logout && command != buildAndPush
.
Especifica argumentos adicionais a serem passados para o cliente Docker. Se estiver usando o valor buildAndPush
para o parâmetro command, a propriedade arguments será ignorada.
Exemplo: Usando o comando build, --build-arg HTTP_PROXY=http://10.20.30.2:1234 --quiet
.
addPipelineData
-
Adicionar metadados de pipeline à(s) imagem(ões)
boolean
. Valor padrão: true
.
Por padrão, dados de pipeline, como nome de ramificação de origem ou ID de compilação, são adicionados e ajudam na rastreabilidade. Por exemplo, você pode inspecionar uma imagem para descobrir qual pipeline criou a imagem. Você pode desativar esse comportamento padrão.
addBaseImageData
-
Adicionar metadados de imagem de base à(s) imagem(ões)
boolean
. Valor padrão: true
.
Por padrão, os dados da imagem base, como nome da imagem base ou resumo, são adicionados e ajudam na rastreabilidade. Você pode desativar esse comportamento padrão.
container
-
Contentor
string
. Opcional. Use quando command = start || command = stop
.
Especifica o nome do recurso de contêiner a ser iniciado ou interrompido. Use este comando com os comandos start
e stop
.
Opções de controlo de tarefas
Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle de e propriedades de tarefas comuns.
Variáveis de saída
Esta tarefa define as seguintes variáveis de saída , que você pode consumir em etapas, trabalhos e estágios downstream.
DockerOutput
Especifica o caminho para os arquivos que contêm a saída do comando. Você pode listar dois caminhos de arquivo em linhas separadas para o comando buildAndPush
e um caminho de arquivo para qualquer outro comando.
Observações
A seguir estão os principais benefícios de usar a tarefa Docker em vez de usar diretamente o binário do cliente Docker em um script.
Integração com o de conexão do serviço de registro do Docker - A tarefa facilita o uso de uma conexão de serviço de registro do Docker para conexão com qualquer registro de contêiner. Depois de entrar, você pode adicionar tarefas de acompanhamento que executam outras tarefas ou scripts aproveitando o logon usado pela tarefa do Docker. Por exemplo, use a tarefa Docker para entrar em qualquer Registro de Contêiner do Azure e, em seguida, use outra tarefa ou script para criar e enviar por push uma imagem para o Registro.
Metadados adicionados como rótulos - A tarefa adiciona metadados relacionados à rastreabilidade à imagem nos seguintes rótulos -
- 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
Solução de problemas
Por que motivo a tarefa do Docker ignora os argumentos transmitidos ao comando buildAndPush?
Uma tarefa do Docker configurada usando o comando buildAndPush
ignora os argumentos passados porque eles se tornam ambíguos para os comandos internos de compilação e push. Pode dividir o comando em passos de criação e envio separados e transmitir os argumentos adequados. Por exemplo, veja esta publicação do StackOverflow.
O DockerV2 suporta apenas a conexão do serviço de registro do Docker e não a conexão do serviço ARM. Como posso usar uma entidade de serviço (SPN) existente do Azure para autenticação na tarefa do Docker?
Pode criar uma ligação do serviço de registo do Docker com as credenciais do SPN do Azure. Escolha os outros do tipo de Registro e forneça os detalhes da seguinte maneira:
Docker Registry: Your container registry URL (eg. https://myacr.azurecr.io)
Docker ID: Service principal client ID
Password: Service principal key
Exemplos
Iniciar sessão
O trecho YAML a seguir mostra um logon de registro de contêiner usando uma conexão de serviço de registro do Docker.
- task: Docker@2
displayName: Login to ACR
inputs:
command: login
containerRegistry: dockerRegistryServiceConnection1
Construir e Empurrar
Um comando de conveniência chamado buildAndPush
permite a compilação e envio de imagens para um registro de contêiner em um único comando.
O trecho YAML a seguir é um exemplo de criação e envio de várias tags de uma imagem para vários registros.
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
No trecho acima, as imagens contosoRepository:tag1
e contosoRepository:tag2
são construídas e enviadas para os registros de contêiner correspondentes a dockerRegistryServiceConnection1
e dockerRegistryServiceConnection2
.
Se você quiser criar e enviar por push para um registro de contêiner autenticado específico em vez de criar e enviar por push para todos os registros de contêiner autenticados de uma só vez, especifique explicitamente a entrada de containerRegistry
com command: buildAndPush
conforme mostrado:
steps:
- task: Docker@2
displayName: Build and Push
inputs:
command: buildAndPush
containerRegistry: dockerRegistryServiceConnection1
repository: contosoRepository
tags: |
tag1
tag2
Sair
O trecho YAML a seguir mostra como fazer logout de um registro de contêiner usando uma conexão de serviço de registro do Docker.
- task: Docker@2
displayName: Logout of ACR
inputs:
command: logout
containerRegistry: dockerRegistryServiceConnection1
Iniciar/parar
Use esta tarefa para controlar contêineres de trabalho e serviço. Este uso é incomum, mas ocasionalmente usado em circunstâncias únicas.
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
Outros comandos e argumentos
As entradas de comando e argumento são usadas para passar argumentos adicionais para comandos build ou push usando o binário do cliente Docker, conforme mostrado no exemplo.
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
Observação
A entrada de argumentos é avaliada para todos os comandos, exceto buildAndPush
.
buildAndPush
é um comando de conveniência (build
seguido de push
), arguments
entrada é ignorada quando é usada.
Requerimentos
Requisito | Descrição |
---|---|
Tipos de pipeline | YAML, Construção clássica, Versão clássica |
Funciona em | Agente, DeploymentGroup |
Exigências | Nenhum |
Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho. |
Restrições de comando | Qualquer |
Variáveis configuráveis | Qualquer |
Versão do agente | 2.172.0 ou superior |
Categoria de tarefa | Construir |
Requisito | Descrição |
---|---|
Tipos de pipeline | YAML, Construção clássica, Versão clássica |
Funciona em | Agente, DeploymentGroup |
Exigências | Nenhum |
Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho. |
Restrições de comando | Qualquer |
Variáveis configuráveis | Qualquer |
Versão do agente | Todas as versões de agente suportadas. |
Categoria de tarefa | Construir |