Share via


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.