Compilare ed eseguire il push di un'immagine da un'app usando un buildpack nativo del cloud
Il comando dell'interfaccia della riga di comando az acr pack build
di Azure usa lo strumento dell'interfaccia della pack
riga di comando, da Buildpacks, per compilare un'app ed eseguirne il push nell'immagine in un registro contenitori di Azure. Questa funzionalità offre un'opzione per creare rapidamente un'immagine del contenitore dal codice sorgente dell'applicazione in Node.js, Java e altri linguaggi senza dover definire un Dockerfile.
È possibile usare azure Cloud Shell o un'installazione locale dell'interfaccia della riga di comando di Azure per eseguire gli esempi in questo articolo. Se si vuole usarlo in locale, è necessaria 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 in anteprima. Le anteprime vengono rese disponibili per l'utente a condizione che si accettino le condizioni d'uso aggiuntive. 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 Cloud Native Buildpacks, 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 da codice correlato, specificando az acr pack build
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
- Uno dei percorsi di contesto supportati 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 viene memorizzato nella cache da Registro Azure Container, è necessario eseguire il pull dell'immagine del generatore usando il
--pull
parametro .
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: Creare un'immagine Node.js con il generatore Cloud Foundry
L'esempio seguente compila un'immagine del contenitore da un'app Node.js nel repository Azure-Samples/nodejs-docs-hello-world usando il cloudfoundry/cnb:cflinuxfs3
generatore.
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 ed esegue il 1.0
push nel registro contenitori myregistry . In questo esempio, il nome del Registro di sistema di destinazione viene anteporto in modo esplicito al nome dell'immagine. Se non specificato, il nome del server di accesso del Registro di sistema viene automaticamente anteporto al nome dell'immagine.
L'output del comando mostra lo stato di avanzamento della compilazione e il push dell'immagine.
Dopo aver compilato l'immagine, è possibile eseguirla con Docker, se installata. 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 heroku/buildpacks:18
generatore.
az acr pack build \
--registry myregistry \
--image java-app:{{.Run.ID}} \
--pull --builder heroku/buildpacks:18 \
https://github.com/buildpack/sample-java-app.git
In questo esempio viene compilata l'immagine java-app
contrassegnata con l'ID di esecuzione del comando e ne viene eseguito il push nel registro contenitori myregistry .
L'output del comando mostra lo stato di avanzamento della compilazione e il push dell'immagine.
Dopo aver compilato l'immagine, è possibile eseguirla con Docker, se installata. Accedere prima al registro:
az acr login --name myregistry
Eseguire l'immagine sostituendo il tag immagine per 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 in servizio app o 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.