Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Serviços de DevOps do Azure
Este artigo orienta-o na criação de um pipeline para construir e enviar uma imagem Docker para um Azure Container Registry ou Docker Hub. No final deste tutorial, terás um pipeline CI/CD funcional que constrói automaticamente a tua imagem Docker e a envia para o registo de contentores escolhido.
Pré-requisitos
| Produto | Requisitos |
|---|---|
| Azure DevOps | - Um projeto Azure DevOps . - Permissões: - Para conceder acesso a todos os pipelines no projeto: Você deve ser membro do grupo Administradores de Projeto. - Para criar conexões de serviço: Deve ter a função de Administrador ou Criador para conexões de serviço. - Se você estiver usando um agente auto-hospedado, verifique se o Docker está instalado e se o mecanismo do Docker está sendo executado com privilégios elevados. Os agentes hospedados pela Microsoft têm o Docker pré-instalado. |
| GitHub | - Uma conta GitHub. - Um repositório GitHub com um Dockerfile. Use o repositório de exemplo se você não tiver seu próprio projeto. - Uma ligação de serviço do GitHub para autorizar o Azure Pipelines. |
| Azul | - Uma assinatura do Azure. - Um Azure Container Registry. |
| Produto | Requisitos |
|---|---|
| Azure DevOps | - Um projeto Azure DevOps . - Permissões: - Para conceder acesso a todos os pipelines no projeto: Você deve ser membro do grupo Administradores de Projeto. - Para criar conexões de serviço: Deve ter a função de Administrador ou Criador para conexões de serviço. - Se você estiver usando um agente auto-hospedado, verifique se o Docker está instalado e se o mecanismo do Docker está sendo executado com privilégios elevados. Os agentes hospedados pela Microsoft têm o Docker pré-instalado. |
| GitHub | - Uma conta GitHub. - Um repositório GitHub com um Dockerfile. Use o repositório de exemplo se você não tiver seu próprio projeto. - Uma ligação de serviço do GitHub para autorizar o Azure Pipelines. |
| Hub do Docker | - Uma conta Docker Hub. - Um Docker Hub repositório de imagens. |
Criar uma conexão de serviço de registro do Docker
Antes de enviar imagens de contentores para um registo, crie uma ligação de serviço no Azure DevOps. Esta ligação de serviço armazena as credenciais necessárias para autenticar de forma segura junto do Azure Container Registry. Para obter mais informações, consulte conexões de serviço do Registro do Docker.
Em seu projeto do Azure DevOps, selecione Configurações do projeto>Conexões de serviço.
Selecione Nova conexão de serviço e Registro do Docker.
Selecione do Docker Hub e insira as seguintes informações:
Campo Descrição ID do Docker Insira seu ID do Docker. Senha do Docker Digite sua senha do Docker. Nome da conexão de serviço Insira um nome para a conexão de serviço. Conceder permissão de acesso a todos os pipelines Selecione esta opção para conceder acesso a todas as linhas de produção.
Selecione Verificar e salvar.
Criar um pipeline para criar e enviar por push uma imagem do Docker
- YAML
- Clássico
A tarefa Docker@2 é usada para criar e enviar a imagem para o registro do contêiner.
A tarefa Docker@2 simplifica o processo de construção, push e gestão de imagens Docker dentro dos seus Azure Pipelines. Esta tarefa suporta uma vasta gama de comandos Docker, incluindo build, push, login, logout, start, stop, , e run.
Use os passos seguintes para criar um pipeline YAML que utiliza a tarefa Docker@2 para construir e fazer push da imagem.
No seu projeto Azure DevOps, selecione Pipelines e New pipeline.
Selecione do GitHub como o local do código-fonte e selecione o repositório.
- Se você for redirecionado para o GitHub para entrar, insira suas credenciais do GitHub.
- Se você for redirecionado para o GitHub para instalar o aplicativo Azure Pipelines, selecione Aprovar e instalar.
Selecione o seu repositório.
Selecione o modelo de pipeline inicial para criar uma configuração básica de pipeline.
Substitua o conteúdo do azure-pipelines.yml pelo seguinte código:
trigger: - main pool: vmImage: 'ubuntu-latest' variables: # Replace with the name of your target Docker Hub or Azure Container Registry repository repositoryName: '<image-repository-name>' steps: - task: Docker@2 inputs: # Replace with the service connection name created in previous steps containerRegistry: '<docker-registry-service-connection-name>' repository: $(repositoryName) command: 'buildAndPush' Dockerfile: '**/Dockerfile'Edite o arquivo YAML do pipeline da seguinte maneira:
- Substitua
<target repository name>pelo nome do repositório no registro do contêiner onde você deseja enviar a imagem por push. - Substitua
<docker registry service connection>pelo nome da conexão do serviço de registro do Docker criada anteriormente.
- Substitua
Quando terminar, selecione Guardar e executar>Guardar e executar.
Selecione trabalho para ver os logs e verificar se o pipeline foi executado com êxito.
- YAML
- Clássico
Vá para seu projeto de DevOps do Azure e selecione Pipelines no menu à esquerda.
Selecione Novo fluxo de trabalho.
Selecione do GitHub como o local do código-fonte e selecione o repositório.
- Se você for redirecionado para o GitHub para entrar, insira suas credenciais do GitHub.
- Se você for redirecionado para o GitHub para instalar o aplicativo Azure Pipelines, selecione Aprovar e instalar.
Selecione o modelo Docker - Criar e fazer o push de uma imagem para o Registo de Contentores Azure.
Selecione sua assinatura do Azure e Continue.
Seleciona o registo do teu contentor e depois seleciona Validar e configurar.
Exemplo de pipeline YAML:
# Docker # Build and push an image to Azure Container Registry # https://docs.microsoft.com/azure/devops/pipelines/languages/docker trigger: - main resources: - repo: self variables: # Container registry service connection established during pipeline creation dockerRegistryServiceConnection: '<docker-registry-service-connection-id>' imageRepository: '<image-repository-name>' containerRegistry: '<container-registry-name>.azurecr.io' dockerfilePath: '$(Build.SourcesDirectory)/app/Dockerfile' tag: '$(Build.BuildId)' # Agent VM image name vmImageName: 'ubuntu-latest' stages: - stage: Build displayName: Build and push stage jobs: - job: Build displayName: Build 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)Selecione Salvar e executar e Salvar e executar novamente.
Selecione trabalho para ver os logs e verificar se o pipeline foi executado com êxito.
O template Docker cria a ligação de serviço ao teu Azure Container Registry e usa a tarefa Docker@2 para construir e enviar a imagem Docker para o registo.
A tarefa Docker@2 foi projetada para simplificar o processo de criação, envio por push e gerenciamento de imagens do Docker em seus Pipelines do Azure. Esta tarefa suporta uma ampla gama de comandos do Docker, incluindo build, push, login, logout, start, stop e run.
Ao usar agentes auto-hospedados, certifique-se de que o Docker está instalado no host do agente e que o motor/daemon Docker está a correr com permissões administrativas.