Containerregisters van derden gebruiken

Azure Developer CLI (azd) ondersteunt externe containerregisters van derden voor implementatie. Als u deze functie wilt gebruiken, moet u zich handmatig aanmelden bij het externe containerregister voordat u de opdracht azd deploy uitvoert.

Docker-authenticatie is alleen vereist wanneer azd imagebewerkingen voor u beheert, zoals het ophalen, bouwen, taggen of pushen van images. Als een service is geconfigureerd met services.<name>.docker.imagePassthrough: true, gebruikt azd de geconfigureerde externe image ongewijzigd opnieuw. In dat geval heeft azd geen Docker of Podman nodig en voert het geen stappen uit voor registry-authenticatie of de levenscyclus van images voor die service.

Verificatie

Voer docker login uit en meld u aan bij uw externe containerregister. Mogelijk moet u meer installatie- of configuratiestappen voor uw specifieke registerprovider volgen.

docker login <your-registry>

Voorbeeldscenario's

U kunt azd configureren om images te pushen en te pullen vanuit een extern containerregister in het azure.yaml-bestand van uw sjabloon. Ondersteuning voor meer containerregisters biedt meer flexibiliteit voor uw implementatiewerkstromen.

Ophalen uit extern containerregister

In dit voorbeeld wordt tijdens het implementeren met azd de container vanuit docker.io/username/nginx:latest opgehaald en rechtstreeks gebruikt door de container-app-service.

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

Notitie

Uw infrastructuurconfiguratie voor containerapp moet referenties configureren bij het ophalen van containers uit privécontainerregisters.

Als u een externe image wilt implementeren zonder dat Docker of Podman vereist is, stelt u services.<name>.docker.imagePassthrough: true in en geeft u de volledig gekwalificeerde image, inclusief het register, op 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 heeft de volgende beperkingen:

  • Hiervoor moet services.<name>.image ingesteld zijn.
  • Het kan niet worden gecombineerd met docker.remoteBuild.
  • Het ondersteunt de image-overschrijvingsvlaggen --from-package, azd publish en --to niet voor die service.

Pull, tag & push naar een extern register

Overweeg een azure.yaml bestand met de volgende configuratie:

# 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   

Met azd deploy de opdracht wordt de geconfigureerde nginx-installatiekopie opgehaald. In dit geval is het een openbare image op Docker Hub, dus azd hertagt de container/image en pusht deze naar de Docker registry.

Bouwen, labelen en pushen naar extern register in azd deploy

Overweeg een azure.yaml bestand met de volgende configuratie:

# 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

Met azd deploy de opdracht wordt de container gebouwd, gelabeld en naar het Docker-register gepusht.