Compartilhar via


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.