Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'interfaccia della riga di comando per sviluppatori di Azure (azd) supporta registri contenitori di terze parti esterni per la distribuzione. Per usare questa funzionalità, devi autenticarti manualmente nel registro esterno dei container prima di eseguire il comando azd deploy.
L'autenticazione basata su Docker è necessaria solo quando azd gestisce automaticamente le operazioni di immagine, ad esempio pull, compilazione, assegnazione di tag o push di immagini. Se un servizio è configurato con services.<name>.docker.imagePassthrough: true, azd riutilizza l'immagine remota configurata as-is. In questo caso, azd non richiede Docker o Podman e non esegue alcuna procedura di autenticazione del Registro di sistema o ciclo di vita dell'immagine per tale servizio.
Autenticazione
Eseguire docker login ed eseguire l'autenticazione nel registro contenitori esterno. Potrebbe essere necessario seguire altri passaggi di installazione o configurazione per il provider del Registro di sistema specifico.
docker login <your-registry>
Scenari di esempio
È possibile configurare azd per eseguire il push e il pull di immagini da un registro contenitori esterno nel azure.yaml file del modello. Il supporto per più registri contenitori offre maggiore flessibilità per i flussi di lavoro di distribuzione.
Scaricare da un registro esterno dei contenitori
In questo esempio, durante azd il contenitore viene prelevato da docker.io/username/nginx:latest e referenziato direttamente dal servizio app contenitore.
name: todo-nodejs-mongo-aca
metadata:
template: todo-nodejs-mongo-aca@0.0.1-beta
services:
nginx:
image: docker.io/<username>/nginx:latest
host: containerapp
Nota
La configurazione dell'infrastruttura di Container Apps deve prevedere le credenziali necessarie per recuperare i contenitori dai registri di contenitori privati.
Per distribuire un'immagine remota senza richiedere Docker o Podman, impostare services.<name>.docker.imagePassthrough: true e fornire l'immagine completa, incluso il Registro di sistema, in services.<name>.image:
name: todo-nodejs-mongo-aca
metadata:
template: todo-nodejs-mongo-aca@0.0.1-beta
services:
nginx:
image: docker.io/<username>/nginx:latest
host: containerapp
docker:
imagePassthrough: true
imagePassthrough presenta i vincoli seguenti:
-
services.<name>.imageDeve essere impostato. - Non può essere combinato con
docker.remoteBuild. - Non supporta i
--from-packageflag di override dell'immagine,azd publishe--to, per quel servizio.
Recupera, etichetta e invia al registro esterno
Si consideri un azure.yaml file con la configurazione seguente:
# azure.yaml
name: todo-nodejs-mongo-aca
metadata:
template: todo-nodejs-mongo-aca@0.0.1-beta
services:
nginx:
image: nginx
host: containerapp
docker:
registry: docker.io/<username>
image: nginx
tag: latest
Il azd deploy comando esegue il pull dell'immagine nginx configurata. In questo caso, si tratta di un'immagine pubblica nell'hub Docker, quindi azd retaga il contenitore/immagine e lo inserisce nel registro Docker.
Compila, assegna un tag e pubblica in un registro esterno con azd deploy
Si consideri un azure.yaml file con la configurazione seguente:
# azure.yaml
name: todo-nodejs-mongo-aca
metadata:
template: todo-nodejs-mongo-aca@0.0.1-beta
services:
api:
project: ./src/api
host: containerapp
docker:
registry: docker.io/<username>
image: todo-api
Il azd deploy comando compila il contenitore, lo contrassegna ed esegue il push nel registro Docker.