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 build
o , 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.