Usar o Docker YAML para criar e enviar imagens do Docker para o Registro de Contêiner do Azure
Serviços de DevOps do Azure
Este tutorial mostra como usar um pipeline baseado em um modelo do Azure Pipelines Docker para criar um aplicativo em contêiner e enviá-lo por push para o Registro de Contêiner do Azure. O modelo configura um pipeline YAML de integração contínua onde novas alterações no repositório de código acionam o pipeline para criar e publicar imagens atualizadas do Docker no registro.
O pipeline de modelo de contêiner do Docker usa agentes hospedados pela Microsoft e cria uma conexão de serviço baseada em entidade de serviço com o Registro de Contêiner do Azure. Para um pipeline que faz um processo semelhante usando agentes auto-hospedados e uma conexão de serviço criada por você mesmo, consulte Criar e enviar imagens do Docker para o Registro de Contêiner do Azure.
Pré-requisitos
Uma conta do Azure onde você tem permissão para criar e configurar recursos. Se não tiver uma conta do Azure, inscreva-se numa conta gratuita.
Uma organização e um projeto do Azure DevOps onde você tem permissão para criar pipelines e implantar aplicativos. Para criar uma organização ou projeto, consulte Criar uma nova organização ou Criar um projeto no Azure DevOps.
Uma conta GitHub.
Importante
Ao usar o GitHub nos procedimentos a seguir, você pode ser solicitado a criar uma conexão de serviço do GitHub, entrar no GitHub, autenticar organizações do GitHub, instalar o Azure Pipelines ou autorizar o Azure Pipelines. Siga as instruções na tela para concluir o processo. Para obter mais informações, consulte Acesso a repositórios do GitHub.
Obter a aplicação de exemplo
No GitHub, bifurque ou clone o Docker de Exemplo e o Kubernetes Node.JS repositório de aplicativos .
Criar um registo de contentores
No portal do Azure, entre no Azure Cloud Shell selecionando o ícone na barra de menu superior. Certifique-se de usar o shell Bash .
No Cloud Shell, execute os seguintes comandos para criar um grupo de recursos e um registro de contêiner do Azure usando a CLI do Azure. O nome do Registro de Contêiner deve ser minúsculo.
az group create --name myapp-rg --location eastus az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
Para implantar uma imagem do Docker no registro de contêiner do Azure, você deve habilitar a conta de usuário administrador para o registro, que está desabilitada por padrão. Para habilitar o usuário admin para seu registro, use o
--admin-enabled
parâmetro com oaz acr update
comando. Para obter mais informações e instruções, consulte Conta de administrador.az acr update -n <acrName> --admin-enabled true
Como alternativa, você pode usar a interface do usuário do portal do Azure para criar seu registro de contêiner do Azure. Para obter instruções, consulte Criar um registro de contêiner. Habilite a conta de administrador em Propriedades depois de criar o registro.
Criar o pipeline
Em seu projeto de DevOps do Azure, selecione Pipelines>New pipeline ou Create pipeline se esse pipeline for o primeiro do projeto.
Selecione GitHub como o local do seu código-fonte.
Na tela Selecione um repositório, selecione seu repositório de código de exemplo.
Na tela Configurar seu pipeline, selecione o pipeline Docker: Criar e enviar por push uma imagem para o pipeline do Registro de Contêiner do Azure.
Na tela do Docker, selecione sua assinatura do Azure e selecione Continuar.
Selecione seu Registro de contêiner no menu suspenso, forneça um Nome da imagem e selecione Validar e configurar.
O Azure Pipelines gera um arquivo de azure-pipelines.yml que define seu pipeline.
Reveja o código no azure-pipelines.yml e, em seguida, selecione Guardar e executar.
Opcionalmente, edite a mensagem de confirmação e forneça uma descrição. Em seguida, selecione Salvar e executar novamente para confirmar o arquivo azure-pipelines.yml no repositório e iniciar uma compilação.
A página de execução da compilação mostra os detalhes e o progresso da compilação. Para observar seu pipeline em ação, selecione Criar em Trabalhos.
Detalhes do pipeline
O pipeline é gerado a partir do modelo de contêiner do Docker. O estágio de compilação usa a tarefa Docker v2 para criar e enviar sua imagem do Docker para o registro do contêiner.
A tarefa do Docker usa uma conexão de serviço de registro do Docker com a autenticação da entidade de serviço para permitir que seu pipeline envie imagens por push para o registro do contêiner. O modelo de contêiner do Docker gera essa conexão de serviço quando cria o pipeline.
- stage: Build
displayName: Build and push stage
jobs:
- job: Build
displayName: Build job
pool:
vmImage: $(vmImageName)
steps:
- task: Docker@2
displayName: Build and push an image to container registry
inputs:
command: buildAndPush
repository: $(imageRepository)
dockerfile: $(dockerfilePath)
containerRegistry: $(dockerRegistryServiceConnection)
tags: |
$(tag)
Clean up resources (Limpar recursos)
Quando terminar de usar os recursos criados neste tutorial, você poderá excluí-los para evitar incorrer em cobranças adicionais. Execute o seguinte comando do Cloud Shell para excluir seu grupo de recursos e todos os recursos dentro dele.
az group delete --name myapp-rg