Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Serviços do Azure DevOps
Neste início rápido, você aprenderá a criar uma imagem de contêiner para implantação de aplicativo usando o Azure Pipelines. Para criar essa imagem, você só precisa de um Dockerfile em seu repositório. Você pode criar contêineres do Linux ou do Windows dependendo do agente usado em seu pipeline.
Pré-requisitos
| Categoria | Requisitos |
|---|---|
| Azure DevOps | - Um projeto do Azure DevOps. – Capacidade de executar pipelines em agentes hospedados pela Microsoft. Você pode comprar um trabalho paralelo ou solicitar uma camada gratuita. – Conhecimento básico do YAML e do Azure Pipelines. Para mais informações, veja Como criar seu primeiro pipeline. - Permissões: Para criar um pipeline, os usuários devem pertencer ao grupo Colaboradores, e o grupo precisa ter a permissão Criar pipeline de build configurada como Permitir. Os membros dos grupos de Administradores de Projeto e Administradores de Build também podem gerenciar os pipelines. |
| GitHub | - Uma conta do GitHub . – Uma conexão de serviço do GitHub para autorizar o Azure Pipelines. |
| Azul | Uma assinatura do Azure. |
Bifurcar a amostra de repositório
No navegador, acesse o repositório de exemplo a seguir e crie um forque dele para sua conta do GitHub.
https://github.com/MicrosoftDocs/pipelines-javascript-docker
Criar uma imagem do Linux ou do Windows
Entre na organização do Azure DevOps e acesse seu projeto.
Vá para Pipelines e selecione Novo Pipeline ou Criar Pipeline se estiver criando o primeiro pipeline no projeto.
Selecione GitHub como o local do código-fonte.
Selecione o repositório e selecione Pipeline inicial.
- Se você for redirecionado ao GitHub para entrar, insira suas credenciais do GitHub.
- Se você for redirecionado ao GitHub para instalar o aplicativo Azure Pipelines, selecione Aprovar e instalar.
Substitua o conteúdo do azure-pipelines.yml pelo seguinte código. Dependendo se você está implantando um aplicativo Linux ou Windows, defina
vmImagecomoubuntu-latestouwindows-latest.trigger: - main pool: vmImage: 'ubuntu-latest' variables: imageName: 'pipelines-javascript-docker' steps: - task: Docker@2 displayName: Build an image inputs: repository: $(imageName) command: build Dockerfile: app/DockerfileQuando terminar, selecione Salvar e executar.
Ao adicionar o arquivo azure-pipelines.yml ao repositório, você será solicitado a adicionar uma mensagem do commit. Insira uma mensagem e selecione Salvar e executar.
Ao usar agentes auto-hospedados, verifique se o Docker está instalado no host do agente e se o mecanismo/daemon do Docker está em execução com privilégios elevados.
Para criar a imagem, o Docker deve estar instalado no host do agente e o mecanismo/daemon do Docker deve estar em execução com privilégios elevados. Use as etapas a seguir para criar o pipeline usando o editor de pipeline YAML.
- Acesse sua coleção e crie um projeto.
- No projeto, selecione Pipelines.
- Selecione Criar pipeline.
- Selecione GitHub Enterprise Server como o local para seu código-fonte.
- Caso ainda não tenha feito isso, autorize o Azure Pipelines a se conectar à sua conta do GitHub Enterprise Server.
- Selecione Conectar ao GitHub Enterprise Server.
- Insira detalhes da sua conta e selecione Verificar e salvar.
- Selecione seu repositório. Se você for redirecionado ao GitHub para instalar o aplicativo Azure Pipelines, selecione Aprovar e instalar.
- Para configurar o pipeline, selecione o modelo Criar uma imagem do Docker.
- No editor de pipeline YAML, substitua o conteúdo do arquivo YAML pelo código a seguir. Substitua o nome do pool pelo nome do pool que contém seu agente auto-hospedado com a funcionalidade do Docker.
# Docker
# Build a Docker image
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
trigger:
- main
pool:
name: default
demands: docker
variables:
imageName: 'pipelines-javascript-docker'
steps:
- task: Docker@2
displayName: Build an image
inputs:
repository: $(imageName)
command: build
Dockerfile: '$(Build.SourcesDirectory)/app/Dockerfile'
- Selecione Salvar e executar.
- Na página Salvar e executar, selecione Salvar e executar novamente.
Para obter mais informações sobre como criar imagens do Docker, consulte a tarefa do Docker usada por este aplicativo de exemplo. Você também pode invocar comandos do Docker diretamente usando uma tarefa de linha de comando.
As imagens de contêiner são criadas e armazenadas no agente. Envie sua imagem por push para o Registro de Contêiner do Google, o Hub do Docker ou o Registro de Contêiner do Azure. Para obter mais informações, consulte Enviar uma imagem por push para o Docker Hub ou o Registro de Contêiner do Google ou Enviar uma imagem por push para o Registro de Contêiner do Azure.
Limpar os recursos
Se você não planeja continuar usando esse aplicativo, exclua o pipeline e o repositório de código.
perguntas frequentes
Quais agentes posso usar para criar imagens de contêiner?
Você pode criar imagens de contêiner do Linux usando agentes do Ubuntu hospedados pela Microsoft ou agentes auto-hospedados baseados na plataforma Linux.
Você pode criar imagens de contêiner do Windows usando agentes do Windows hospedados pela Microsoft ou agentes auto-hospedados baseados na plataforma Windows. Todos os agentes baseados na plataforma Windows hospedados pela Microsoft são enviados com o cliente e o mecanismo Moby necessários para builds do Docker.
Você não pode usar agentes macOS hospedados pela Microsoft para criar imagens de contêiner porque o mecanismo Moby necessário para a criação das imagens não está pré-instalado nesses agentes.
Para saber mais, veja as Opções de agente do Windows e do Linux disponíveis com agentes hospedados pela Microsoft.
Quais imagens do Docker pré-armazenadas em cache estão disponíveis nos agentes hospedados?
Para economizar tempo baixando imagens do Docker para cada trabalho do registro de contêineres, algumas imagens comumente usadas são pré-carregadas em agentes hospedados pela Microsoft.
Como definir a variável BuildKit para meus builds do Docker?
O BuildKit apresenta melhorias de build em relação ao desempenho, ao gerenciamento de armazenamento, à funcionalidade de recursos e à segurança. Atualmente, não há suporte para o BuildKit em hosts do Windows.
Para habilitar builds do Docker usando o BuildKit, defina a variável DOCKER_BUILDKIT.
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
variables:
imageName: 'pipelines-javascript-docker'
DOCKER_BUILDKIT: 1
steps:
- task: Docker@2
displayName: Build an image
inputs:
repository: $(imageName)
command: build
Dockerfile: app/Dockerfile
Como posso usar um agente auto-hospedado?
Para que o Docker funcione corretamente, ele deve estar instalado e o mecanismo (ou daemon, uma espécie de serviço) deve estar em execução no host do agente. Se o Docker não estiver instalado, adicione a tarefa do instalador do Docker ao pipeline. Adicione a Tarefa do Instalador do Docker antes da Tarefa do Docker.
Como posso criar um build do Docker baseado em script em vez de usar a tarefa do Docker?
Você pode usar o comando build ou qualquer outro comando do Docker.
docker build -f Dockerfile -t foobar.azurecr.io/hello:world .
Esse comando cria uma imagem equivalente a uma criada com a tarefa do Docker. Internamente, a tarefa do Docker chama o binário do Docker em um script e une mais alguns comandos para fornecer mais alguns benefícios. Saiba mais sobre a tarefa do Docker.
Posso reutilizar o cache de camadas durante builds no Azure Pipelines?
Se você usar agentes hospedados pela Microsoft, cada trabalho será enviado para uma máquina virtual recém-provisionada, com base na imagem gerada a partir de templates do repositório azure-pipelines-image-generation. Essas máquinas virtuais são limpas após a conclusão do trabalho. Esse tempo de vida efêmero impede a reutilização dessas máquinas virtuais para trabalhos subsequentes e a reutilização de camadas do Docker armazenadas em cache. Como solução alternativa, você pode configurar um build de vários estágios que produz duas imagens e as envia por push para um registro de imagem em um estágio inicial. Em seguida, você pode instruir o Docker a usar essas imagens como uma fonte de cache com o argumento --cache-from.
Se você estiver usando agentes auto-hospedados, poderá armazenar camadas do Docker em cache sem nenhuma solução alternativa porque o problema de tempo de vida efêmero não se aplica a esses agentes.
Como fazer para criar imagens de contêiner do Linux para arquiteturas diferentes de x64?
Ao usar agentes do Linux hospedados pela Microsoft, você cria imagens de contêiner do Linux para a arquitetura x64. Para criar imagens para outras arquiteturas, como processador ARM ou x86, você pode usar um emulador de computador, como QEMU.
Siga estas etapas para criar uma imagem de contêiner do processador ARM usando QEMU:
Crie seu Dockerfile com uma imagem base que corresponda à arquitetura de destino:
FROM arm64v8/alpine:latestExecute o seguinte script em seu trabalho antes de compilar a imagem:
# register QEMU binary - this can be done by running the following image docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # build your image
Para obter mais informações, confira qemu-user-static no GitHub.
Como executar testes e publicar resultados de teste para aplicativos em contêineres?
Para explorar as opções para testar aplicativos em contêineres e publicar resultados de teste, consulte a tarefa Publicar Resultados do Teste.
Próximas etapas
Depois de criar sua imagem de contêiner, envie a imagem por push para o Registro de Contêiner do Azure, Docker Hub ou Registro de Contêiner do Google. Para saber como enviar uma imagem por push para um registro de contêiner, consulte um dos seguintes artigos: