Crie e envie imagens do Docker para o Registro de Contêiner do Azure utilizando os modelos do Docker

Azure DevOps Services

Neste tutorial passo a passo, você aprenderá como configurar um pipeline de integração contínua para criar um aplicativo em contêiner. Novas solicitações de pull disparam o pipeline para criar e publicar imagens do Docker no Registro de Contêiner do Azure.

Pré-requisitos

Obter o código

Bifurque ou clone o aplicativo de exemplo pipeline-javascript-docker:

https://github.com/MicrosoftDocs/pipelines-javascript-docker

Criar um registro de contêiner

  1. Entre no Azure e pressione o botão Azure Cloud Shell no canto superior direito.

    Azure Cloud Shell button

  2. Execute os comandos a seguir para criar um grupo de recursos e um Registro de Contêiner do Azure usando a CLI do Azure.

    # Create a resource group
    az group create --name myapp-rg --location eastus
    
    # Create a container registry
    az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
    

Observação

O nome do Registro de Contêiner deve estar em letras minúsculas.

Você também pode usar a interface do usuário da Web do portal do Azure para criar seu Registro de Contêiner do Azure. Confira Criar um registro de contêiner para obter mais detalhes.

Importante

Você deve habilitar a conta de usuário administrador para implantar uma imagem do Docker de um Registro de Contêiner do Azure. Confira Autenticação do registro de contêiner para obter mais detalhes.

Criar o pipeline

  1. Entre na sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Pipelines e selecione Novo Pipeline para criar um pipeline.

    Create a new pipeline

  3. Selecione GitHub YAML e selecione Autorizar Azure Pipelines para fornecer as permissões apropriadas para acessar seu repositório.

  4. Talvez seja necessário entrar no GitHub. Nesse caso, insira suas credenciais do GitHub e selecione seu repositório na lista de repositórios.

  5. Na guia Configurar, selecione a tarefa Docker – Compilar e efetuar push de uma imagem para Registro de Contêiner do Azure.

    Build and push Docker images to Azure Container Registry

  6. Selecione sua Assinatura do Azure e escolha Continuar.

  7. Selecione o Registro de contêiner no menu suspenso e forneça um Nome de Imagem para a imagem de contêiner.

  8. Selecione Validar e configurar quando terminar.

    A screenshot showing how to configure a docker pipeline to build and publish an image to Azure Container Registry

    Conforme o Azure Pipelines cria o pipeline, ele fará o seguinte:

    • Criará uma conexão de serviço de registro do Docker para permitir que o pipeline envie imagens por push ao registro de contêiner.

    • Gerará um arquivo azure-pipelines.yml que definirá seu pipeline.

  9. Examinará o YAML do pipeline e selecionará Salvar e executar quando estiver pronto.

    Review your pipeline, save & run

  10. Adicione uma Mensagem de confirmação e selecione Salvar e executar para confirmar suas alterações e executar seu pipeline.

  11. À medida que o pipeline é executado, selecione o trabalho de build para observar o pipeline em ação.

    Monitor builds

Como criamos seu pipeline

O pipeline que acabamos de criar na seção anterior foi gerado a partir do Modelo de contêiner do Docker YAML. O estágio de build usa a Tarefa do dockerDocker@2 para criar e enviar sua imagem do Docker para o registro de contêiner.

- 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)

Limpar os recursos

Se você não quiser continuar a usar esse aplicativo, poderá excluir os recursos criados neste tutorial para evitar incorrer em encargos contínuos. Execute o seguinte para excluir o grupo de recursos.

az group delete --name myapp-rg