Compilar e enviar por push uma imagem de um aplicativo usando um Buildpack Nativo de Nuvem
O comando da CLI do Azure CLI az acr pack build
usa a ferramenta da CLI pack
, de Buildpacks, para criar um aplicativo e enviar por push sua imagem para um registro de contêiner do Azure. Esse recurso fornece uma opção para criar rapidamente uma imagem de contêiner do código-fonte do seu aplicativo em Node.js, Java e outras linguagens sem precisar definir um Dockerfile.
Você pode usar o Azure Cloud Shell ou uma instalação local da CLI do Azure para executar os exemplos neste artigo. Para usá-lo localmente, é necessária a versão 2.0.70 ou posterior. Execute az --version
para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
Importante
Esse recurso está atualmente na visualização. As versões prévias são disponibilizadas com a condição de que você concorde com os termos de uso complementares. Alguns aspectos desse recurso podem alterar antes da GA (disponibilidade geral).
Usar o comando de build
Para criar e enviar por push uma imagem de contêiner usando Buildpacks Nativos da Nuvem, execute o comando az acr pack build. Enquanto o comando az acr build compila e envia uma imagem de uma fonte do Dockerfile e de um código relacionado, com az acr pack build
você especifica uma árvore de origem do aplicativo diretamente.
No mínimo, especifique o seguinte ao executar az acr pack build
:
- Um registro de contêiner do Azure em que você executa o comando
- Um nome de imagem e uma marca para a imagem resultante
- Um dos locais de contexto com suporte para Tarefas do ACR, como um diretório local, um repositório do GitHub ou um tarball remoto
- O nome de uma imagem do construtor de Buildpack adequado para seu aplicativo. Se não estiver armazenada em cache pelo Registro de Contêiner do Azure, a imagem do construtor deverá ser obtida usando o parâmetro
--pull
.
O az acr pack build
é compatível com outros recursos dos comandos das Tarefas do ACR, incluindo variáveis de execução e logs de execução de tarefa que são transmitidos e também salvos para recuperação posterior.
Exemplo: criar imagem do Node.js com o construtor Cloud Foundry
O exemplo a seguir compila uma imagem de contêiner de um aplicativo Node.js no repositório Azure-Samples/nodejs-docs-hello-world usando o construtor cloudfoundry/cnb:cflinuxfs3
.
az acr pack build \
--registry myregistry \
--image node-app:1.0 \
--pull --builder cloudfoundry/cnb:cflinuxfs3 \
https://github.com/Azure-Samples/nodejs-docs-hello-world.git
Este exemplo compila a imagem node-app
com a marca 1.0
e a envia para o registro de contêiner myregistry. Neste exemplo, o nome do registro de destino é explicitamente anexado ao nome da imagem. Se não for especificado, o nome do servidor de logon do registro será automaticamente anexado ao nome da imagem.
A saída do comando mostra o progresso da criação e do envio por push da imagem.
Depois que a imagem for criada com êxito, você poderá executá-la com o Docker, se ele estiver instalada. Primeiro entre no Registro:
az acr login --name myregistry
Executar a imagem:
docker run --rm -p 1337:1337 myregistry.azurecr.io/node-app:1.0
Navegue até localhost:1337
em seu navegador favorito para ver o aplicativo Web de exemplo. Pressione [Ctrl]+[C]
para interromper o contêiner.
Exemplo: compilar imagem Java com o construtor Heroku
O exemplo a seguir compila uma imagem de contêiner do aplicativo Java no repositório buildpack/Sample-java-app usando o construtor heroku/buildpacks:18
.
az acr pack build \
--registry myregistry \
--image java-app:{{.Run.ID}} \
--pull --builder heroku/buildpacks:18 \
https://github.com/buildpack/sample-java-app.git
Este exemplo compila a imagem java-app
marcada com a ID de execução do comando e a envia para o registro de contêiner myregistry.
A saída do comando mostra o progresso da criação e do envio por push da imagem.
Depois que a imagem for criada com êxito, você poderá executá-la com o Docker, se ele estiver instalada. Primeiro entre no Registro:
az acr login --name myregistry
Execute a imagem, substituindo sua marca de imagem para runid:
docker run --rm -p 8080:8080 myregistry.azurecr.io/java-app:runid
Navegue até localhost:8080
em seu navegador favorito para ver o aplicativo Web de exemplo. Pressione [Ctrl]+[C]
para interromper o contêiner.
Próximas etapas
Depois de criar e enviar por push uma imagem de contêiner com o az acr pack build
, você pode implantá-la como qualquer imagem para um destino de sua escolha. As opções de implantação do Azure incluem executá-lo no Serviço de Aplicativo ou no Serviço de Kubernetes do Azure, entre outros.
Para obter mais informações sobre recursos de Tarefas do ACR, confira Automatizar builds de imagem de contêiner e manutenção com tarefas do ACR.