Partilhar via


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

  • Uma conta GitHub. Crie uma conta gratuita no GitHub, se ainda não tiver uma.

  • Uma organização e um projeto do Azure DevOps. Crie uma nova organização e/ou um novo projeto, se ainda não tiver um.

  • Uma conta do Azure. Inscreva-se para obter uma conta gratuita do Azure, se ainda não tiver uma.

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.

    Botão Azure Cloud Shell

  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.

    Criar um novo 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.

    Criar e enviar imagens do Docker para o Registro de Contêiner do Azure

  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.

    Uma captura de tela mostrando como configurar um pipeline do docker para criar e publicar uma imagem no Registro de Contêiner do Azure

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

    Revise seu pipeline, salve e execute

  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.

    Monitorar compilações

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 tarefa Docker@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