Criar e enviar imagens do Docker para o Azure Container Registry com modelos do Docker

Serviços de DevOps do Azure

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 pull acionam o pipeline para criar e publicar imagens do Docker no Registro de Contêiner do Azure.

Pré-requisitos

Obter o código

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

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

Criar um registo de contentores

  1. Entre no Azure e selecione 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
    

Nota

Um nome de Registro de Contêiner deve ser minúsculo.

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. Consulte Criar um registro de contêiner para obter detalhes.

Importante

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

Criar o pipeline

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

  2. Selecione Pipelines e, em seguida, selecione New Pipeline para criar um novo pipeline.

    Create a new pipeline

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

  4. Você pode ser solicitado a entrar no GitHub. Em caso afirmativo, insira suas credenciais do GitHub e selecione seu repositório na lista de repositórios.

  5. Na guia Configurar, selecione a tarefa Docker - Criar e enviar uma imagem por push para o Registro de Contêiner do Azure.

    Build and push Docker images to Azure Container Registry

  6. Selecione a sua Subscrição do Azure e, em seguida, selecione Continuar.

  7. Selecione o registro do contêiner no menu suspenso e, em seguida, forneça um Nome da imagem para a imagem do 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

    À medida que o Azure Pipelines cria seu pipeline, ele irá:

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

    • Gere um arquivo azure-pipelines.yml , que define seu pipeline.

  9. Reveja o YAML do pipeline e, em seguida, selecione Guardar e executar quando estiver pronto.

    Review your pipeline, save & run

  10. Adicione uma mensagem de confirmação e selecione Salvar e executar para confirmar as alterações e executar o pipeline.

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

    Monitor builds

Como construímos o 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 compilação usa a tarefaDocker@2 do Docker para criar e enviar sua imagem do Docker para o registro do 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)

Clean up resources (Limpar recursos)

Se você não vai continuar a usar este aplicativo, você pode excluir os recursos que você criou neste tutorial para evitar incorrer em cobranças contínuas. Execute o seguinte para excluir seu grupo de recursos.

az group delete --name myapp-rg