Crie e envie por push uma imagem de um aplicativo usando um Cloud Native Buildpack
O comando az acr pack build
CLI do Azure usa a pack
ferramenta CLI, de Buildpacks, para criar um aplicativo e enviar sua imagem para um registro de contêiner do Azure. Esse recurso fornece uma opção para criar rapidamente uma imagem de contêiner a partir do código-fonte do 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. Se você quiser usá-lo localmente, a versão 2.0.70 ou posterior é necessária. Executar az --version
para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
Importante
Esta funcionalidade está atualmente em pré-visualização. As pré-visualizações são disponibilizadas a si na condição de concordar com os termos suplementares de utilização. Alguns aspetos desta funcionalidade podem alterar-se após a disponibilidade geral (GA).
Use o comando build
Para criar e enviar por push uma imagem de contêiner usando o Cloud Native Buildpacks, execute o comando az acr pack build . Enquanto o comando az acr build cria e envia por push uma imagem de um código-fonte do Dockerfile e código relacionado, você az acr pack build
especifica uma árvore de código-fonte do aplicativo diretamente.
No mínimo, especifique o seguinte ao executar az acr pack build
:
- Um registro de contêiner do Azure onde você executa o comando
- Um nome de imagem e uma tag para a imagem resultante
- Um dos locais de contexto suportados para tarefas ACR, como um diretório local, um repositório GitHub ou um tarball remoto
- O nome de uma imagem do construtor Buildpack adequada para sua aplicação. Se não for armazenada em cache pelo Registro de Contêiner do Azure, a imagem do construtor deverá ser extraída usando o
--pull
parâmetro.
az acr pack build
suporta outros recursos dos comandos ACR Tasks, incluindo variáveis de execução e logs de execução de tarefas que são transmitidos e também salvos para recuperação posterior.
Exemplo: criar Node.js imagem com o construtor do Cloud Foundry
O exemplo a seguir cria uma imagem de contêiner de um aplicativo Node.js no repositório Azure-Samples/nodejs-docs-hello-world , usando o cloudfoundry/cnb:cflinuxfs3
construtor.
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 cria a node-app
imagem com a 1.0
tag e a envia por push para o registro do 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 login do Registro será automaticamente anexado ao nome da imagem.
A saída do comando mostra o progresso da construção e envio da imagem.
Depois que a imagem for criada com êxito, você poderá executá-la com o Docker, se a tiver instalada. Primeiro inicie sessão no seu registo:
az acr login --name myregistry
Execute a imagem:
docker run --rm -p 1337:1337 myregistry.azurecr.io/node-app:1.0
Navegue até no localhost:1337
seu navegador favorito para ver o aplicativo Web de exemplo. Pressione [Ctrl]+[C]
para parar o recipiente.
Exemplo: Construir imagem Java com o construtor Heroku
O exemplo a seguir cria uma imagem de contêiner do aplicativo Java no repositório buildpack/sample-java-app , usando o heroku/buildpacks:18
builder.
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 cria a java-app
imagem marcada com a ID de execução do comando e a envia por push para o registro do contêiner myregistry .
A saída do comando mostra o progresso da construção e envio da imagem.
Depois que a imagem for criada com êxito, você poderá executá-la com o Docker, se a tiver instalada. Primeiro inicie sessão no seu registo:
az acr login --name myregistry
Execute a imagem, substituindo sua tag de imagem por runid:
docker run --rm -p 8080:8080 myregistry.azurecr.io/java-app:runid
Navegue até no localhost:8080
seu navegador favorito para ver o aplicativo Web de exemplo. Pressione [Ctrl]+[C]
para parar o recipiente.
Próximos passos
Depois de criar e enviar por push uma imagem de contêiner com az acr pack build
o , você pode implantá-la como qualquer imagem em 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 Kubernetes do Azure, entre outros.
Para obter mais informações sobre os recursos do ACR Tasks, consulte Automatizar compilações e manutenção de imagens de contêiner com o ACR Tasks.