Menggunakan registri kontainer pihak ketiga

Azure Developer CLI (azd) mendukung registri kontainer pihak ketiga eksternal untuk penyebaran. Untuk menggunakan fitur ini, Anda perlu mengautentikasi secara manual ke registri kontainer eksternal sebelum memanggil penyebaran azd .

Autentikasi berbasis Docker hanya diperlukan ketika azd mengelola operasi image untuk Anda, seperti pull, build, tag, atau push image. Jika layanan dikonfigurasi dengan services.<name>.docker.imagePassthrough: true, azd menggunakan kembali image remote yang dikonfigurasi sebagaimana adanya. Dalam hal ini, azd tidak memerlukan Docker atau Podman dan tidak melakukan langkah-langkah autentikasi registri atau siklus hidup gambar untuk layanan tersebut.

Autentikasi

Jalankan docker login dan autentikasi ke registri kontainer eksternal Anda. Anda mungkin perlu mengikuti lebih banyak langkah penyiapan atau konfigurasi untuk penyedia registri tertentu Anda.

docker login <your-registry>

Skenario contoh

Anda dapat mengonfigurasi azd untuk mendorong dan menarik gambar dari registri kontainer eksternal dalam azure.yaml file templat Anda. Dukungan untuk lebih banyak registri kontainer memberikan fleksibilitas yang lebih besar untuk alur kerja penyebaran Anda.

Tarik dari registri kontainer eksternal

Dalam contoh ini, selama proses deployment azd, kontainer diambil dari docker.io/username/nginx:latest dan langsung dirujuk oleh layanan aplikasi kontainer.

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

Catatan

Konfigurasi infra containerapp Anda harus mengonfigurasi kredensial saat menarik kontainer dari registri kontainer privat.

Untuk menyebarkan gambar jarak jauh tanpa memerlukan Docker atau Podman, atur services.<name>.docker.imagePassthrough: true dan berikan gambar yang sepenuhnya memenuhi syarat, termasuk registri, di 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 memiliki batasan berikut:

  • services.<name>.image harus diatur.
  • Ini tidak dapat dikombinasikan dengan docker.remoteBuild.
  • Tidak mendukung flag penggantian gambar --from-package, --to dan azd publish, untuk layanan tersebut.

Tarik, tandai & dorong ke registri eksternal

azure.yaml Pertimbangkan file dengan konfigurasi berikut:

# 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   

Perintah azd deploy menarik gambar nginx yang dikonfigurasi. Dalam hal ini, gambar publik di Docker Hub, jadi azd menandai ulang kontainer/gambar dan mengunggahnya ke Docker registry.

Bangun, tag, dan push ke registri eksternal saat azd deploy

azure.yaml Pertimbangkan file dengan konfigurasi berikut:

# 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

Perintah azd deploy membangun kontainer, menandainya dan mendorongnya ke registri docker.