Partilhar via


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

  1. No portal do Azure, entre no Azure Cloud Shell selecionando o ícone na barra de menu superior. Certifique-se de usar o shell Bash .

    Botão Azure Cloud Shell

  2. 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
    
  3. 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 o az 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

  1. Em seu projeto de DevOps do Azure, selecione Pipelines>New pipeline ou Create pipeline se esse pipeline for o primeiro do projeto.

    Captura de tela que mostra a tela Criar um novo pipeline.

  2. Selecione GitHub como o local do seu código-fonte.

  3. Na tela Selecione um repositório, selecione seu repositório de código de exemplo.

  4. 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.

    Captura de tela que mostra a imagem Criar e enviar por push do Docker para a seleção de pipeline do Registro de Contêiner do Azure.

  5. Na tela do Docker, selecione sua assinatura do Azure e selecione Continuar.

  6. Selecione seu Registro de contêiner no menu suspenso, forneça um Nome da imagem e selecione Validar e configurar.

    Captura de tela mostrando como configurar um pipeline do Docker para criar e publicar uma imagem no Registro de Contêiner do Azure.

    O Azure Pipelines gera um arquivo de azure-pipelines.yml que define seu pipeline.

  7. Reveja o código no azure-pipelines.yml e, em seguida, selecione Guardar e executar.

    Captura de tela do botão Salvar e executar em um novo pipeline YAML.

  8. 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.

  9. 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.

    Captura de tela que mostra o link Criar na página de execução do trabalho.

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