Compilare ed eseguire il push dell'immagine di un'app usando un pacchetto di compilazione nativo cloud
Il comando dell'interfaccia della riga di comando di Azure az acr pack build
usa lo strumento dell'interfaccia della riga di comando pack
, dai Buildpack, per compilare un'app ed eseguire il push dell'immagine in un Registro Azure Container. Questa funzionalità offre un'opzione per compilare rapidamente un'immagine del contenitore dal codice sorgente dell'applicazione in Node.js, Java e altri linguaggi senza dover definire un Dockerfile.
Per eseguire gli esempi di questo articolo è possibile usare Azure Cloud Shell o un'installazione locale dell'interfaccia della riga di comando di Azure. Se si preferisce l'interfaccia locale, è necessario usare la versione 2.0.70 o successiva. Eseguire az --version
per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Importante
Questa funzionalità è attualmente disponibile solo in anteprima. Le anteprime vengono rese disponibili a condizione che l'utente accetti le condizioni supplementari per l'utilizzo. Alcuni aspetti di questa funzionalità potrebbero subire modifiche prima della disponibilità a livello generale.
Usare il comando di compilazione
Per compilare ed eseguire il push di un'immagine del contenitore usando i Buildpack nativi cloud, eseguire il comando az acr pack build. Mentre il comando az acr build compila ed esegue il push di un'immagine da un'origine Dockerfile e dal relativo codice, con az acr pack build
si specifica direttamente un albero di origine dell'applicazione.
Specificare come minimo quanto segue quando si esegue az acr pack build
:
- Registro Azure Container in cui si esegue il comando
- Nome e tag dell'immagine risultante
- Una delle posizioni di contesto supportate per attività del Registro Azure Container, ad esempio una directory locale, un repository GitHub o un tarball remoto
- Nome di un'immagine del generatore Buildpack adatta per l'applicazione. Se non è memorizzata nella cache da Registro Azure Container, è necessario eseguire il pull dell'immagine del generatore usando il parametro
--pull
.
az acr pack build
supporta altre funzionalità dei comandi delle Attività del Registro Azure Container, tra cui l'esecuzione di variabili e i log di esecuzione delle attività trasmessi e salvati per un recupero in un secondo momento.
Esempio: Compilare un’immagine Node.js con il generatore Cloud Foundry
Nell'esempio seguente viene compilata un'immagine del contenitore da un'app Node.js nel repository Azure-Samples/nodejs-docs-hello-world usando il generatore 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
Questo esempio compila l'immagine node-app
con il tag 1.0
ed esegue il push nel registro contenitori myregistry. In questo esempio, il nome del registro di destinazione viene anteposto in modo esplicito al nome dell'immagine. Se non specificato, il nome del server di accesso del registro viene automaticamente anteposto al nome dell'immagine.
L'output del comando mostra lo stato di avanzamento della compilazione e del push dell'immagine.
Dopo aver compilato correttamente l'immagine, è possibile eseguirla con Docker, se installato. Accedere prima al registro:
az acr login --name myregistry
Eseguire l'immagine:
docker run --rm -p 1337:1337 myregistry.azurecr.io/node-app:1.0
Passare a localhost:1337
nel browser preferito per visualizzare l'app Web di esempio. Premere [Ctrl]+[C]
per arrestare il contenitore.
Esempio: Creare un'immagine Java con il generatore Heroku
L'esempio seguente compila un'immagine del contenitore dall'app Java nel repository buildpack/sample-java-app usando il generatore 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
Questo esempio compila l'immagine java-app
contrassegnata con l'ID di esecuzione del comando ed esegue il push nel registro contenitori myregistry.
L'output del comando mostra lo stato di avanzamento della compilazione e del push dell'immagine.
Dopo aver compilato correttamente l'immagine, è possibile eseguirla con Docker, se installato. Accedere prima al registro:
az acr login --name myregistry
Eseguire l'immagine sostituendo il tag dell’immagine con runid:
docker run --rm -p 8080:8080 myregistry.azurecr.io/java-app:runid
Passare a localhost:8080
nel browser preferito per visualizzare l'app Web di esempio. Premere [Ctrl]+[C]
per arrestare il contenitore.
Passaggi successivi
Dopo aver compilato ed eseguito il push di un'immagine del contenitore con az acr pack build
, è possibile distribuirla come qualsiasi immagine in una destinazione di propria scelta. Le opzioni di distribuzione di Azure includono l'esecuzione nel servizio app o nel servizio Azure Kubernetes, tra le altre.
Per altre informazioni sulle funzionalità di Attività del Registro Azure Container, vedere Automatizzare le compilazioni e la manutenzione delle immagini del contenitore con Attività del Registro Azure Container.