Share via


Criar e emitir uma imagem a partir de uma aplicação com um Buildpack Nativo da Cloud

O comando az acr pack build da CLI do Azure utiliza a pack ferramenta CLI, a partir do Buildpacks, para criar uma aplicação e enviar a respetiva imagem para um registo de contentor do Azure. Esta funcionalidade fornece uma opção para criar rapidamente uma imagem de contentor a partir do código fonte da aplicação no Node.js, Java e outras linguagens sem ter de definir um Dockerfile.

Pode utilizar a Cloud Shell do Azure ou uma instalação local da CLI do Azure para executar os exemplos neste artigo. Se quiser utilizá-la localmente, é necessária a versão 2.0.70 ou posterior. 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 encontra-se 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).

Utilizar o comando de compilação

Para criar e emitir uma imagem de contentor com o Cloud Native Buildpacks, execute o comando az acr pack build . Enquanto o comando az acr build compila e emite uma imagem de uma origem do Dockerfile e código relacionado, com az acr pack build o utilizador a especificar diretamente uma árvore de origem da aplicação.

No mínimo, especifique o seguinte quando executar az acr pack build:

  • Um registo de contentor do Azure onde executa o comando
  • Um nome de imagem e uma etiqueta para a imagem resultante
  • Uma das localizações de contexto suportadas 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 do Buildpack adequada para a sua aplicação. Se não for colocada em cache por Azure Container Registry, a imagem do construtor tem de ser extraída com o --pull parâmetro .

az acr pack build suporta outras funcionalidades de comandos de Tarefas do ACR, incluindo variáveis de execução e registos de execução de tarefas que são transmitidos em fluxo e também guardados para obtenção posterior.

Exemplo: Criar Node.js imagem com o construtor do Cloud Foundry

O exemplo seguinte cria uma imagem de contentor a partir de uma aplicação Node.js no repositório Azure-Samples/nodejs-docs-hello-world com 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 etiqueta e envia-a para o registo de contentor myregistry . Neste exemplo, o nome do registo de destino é explicitamente anexado ao nome da imagem. Se não for especificado, o nome do servidor de início de sessão do registo é automaticamente anexado ao nome da imagem.

A saída do comando mostra o progresso da criação e emiteção da imagem.

Depois de a imagem ser criada com êxito, pode executá-la com o Docker, caso a tenha instalado. 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 para localhost:1337 no seu browser favorito para ver o exemplo de aplicação Web. Prima [Ctrl]+[C] para parar o contentor.

Exemplo: Criar uma imagem Java com o Heroku Builder

O exemplo seguinte cria uma imagem de contentor a partir da aplicação Java no repositório buildpack/sample-java-app com o heroku/buildpacks:18 construtor.

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 etiquetada com o ID de execução do comando e envia-a para o registo de contentor myregistry .

A saída do comando mostra o progresso da criação e emiteção da imagem.

Depois de a imagem ser criada com êxito, pode executá-la com o Docker, caso a tenha instalado. Primeiro, inicie sessão no seu registo:

az acr login --name myregistry

Execute a imagem, substituindo a etiqueta de imagem por runid:

docker run --rm -p 8080:8080 myregistry.azurecr.io/java-app:runid

Navegue para localhost:8080 no seu browser favorito para ver o exemplo de aplicação Web. Prima [Ctrl]+[C] para parar o contentor.

Passos seguintes

Depois de criar e emitir uma imagem de contentor com az acr pack buildo , pode implementá-la como qualquer imagem num destino à sua escolha. As opções de implementação do Azure incluem executá-lo em Serviço de Aplicações ou Azure Kubernetes Service, entre outros.

Para obter mais informações sobre as funcionalidades do ACR Tasks, veja Automatizar compilações e manutenção de imagens de contentor com o ACR Tasks.