Üçüncü taraf container kayıtlarını kullanın

Azure Geliştirici CLI'sı (azd), dağıtım için dış üçüncü taraf kapsayıcı kayıt defterlerini destekler. Bu özelliği kullanmak için deploy çağrısından azd önce dış kapsayıcı kayıt defterinde el ile kimlik doğrulaması yapmanız gerekir.

Docker tabanlı kimlik doğrulaması yalnızca görüntüleri çekme, oluşturma, etiketleme veya gönderme gibi görüntü işlemlerini sizin için yönetirken azd gereklidir. Bir hizmet services.<name>.docker.imagePassthrough: true ile yapılandırılmışsa, azd yapılandırılmış uzak görüntüyü olduğu gibi yeniden kullanır. Bu durumda Docker azd veya Podman gerektirmez ve bu hizmet için kayıt defteri kimlik doğrulaması veya görüntü yaşam döngüsü adımları gerçekleştirmez.

Kimlik Doğrulaması

docker login komutunu çalıştırın ve harici kapsayıcı kayıt defterinizde kimlik doğrulaması yapın. Belirli kayıt defteri sağlayıcınız için daha fazla kurulum veya yapılandırma adımı izlemeniz gerekebilir.

docker login <your-registry>

Örnek senaryolar

Şablonunuzun azure.yaml dosyasında, azd öğesini harici bir konteyner kayıt deposundan imaj gönderip çekecek şekilde yapılandırabilirsiniz. Daha fazla kapsayıcı kayıt defteri desteği, dağıtım iş akışlarınız için daha fazla esneklik sağlar.

Harici konteyner kayıt deposundan çekme

Bu örnekte, azd dağıtımı sırasında kapsayıcı docker.io/username/nginx:latest konumundan çekilir ve kapsayıcı uygulaması hizmeti tarafından doğrudan başvurulur.

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

Not

Container App altyapı yapılandırmanızda, özel kapsayıcı kayıt defterlerinden kapsayıcı çekmek için kimlik bilgilerinin yapılandırılması gerekir.

Docker veya Podman gerektirmeden uzak bir imajı dağıtmak için services.<name>.image ayarını yapın ve kayıt deposu da dahil olmak üzere tam nitelikli imajı services.<name>.docker.imagePassthrough: true içinde belirtin:

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 aşağıdaki kısıtlamalara sahiptir:

  • services.<name>.image ayarlanması gerekir.
  • docker.remoteBuild ile birleştirilemez.
  • Bu hizmet için --from-package görüntü geçersiz kılma bayraklarını, --to ve azd publish desteklemez.

Harici kayıt deposundan çekme, etiketleme ve gönderme

Aşağıdaki yapılandırmaya sahip bir azure.yaml dosya düşünün:

# 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   

komutu azd deploy , yapılandırılan nginx görüntüsünü çeker. Bu durumda, docker hub'ında genel bir görüntüdür, bu nedenle azd kapsayıcıyı/görüntüyü yeniden etiketler ve docker kayıt defterine gönderir.

Azd deploy üzerinde dış kayıt defterine derleme, etiketleme ve gönderme

Aşağıdaki yapılandırmaya sahip bir azure.yaml dosya düşünün:

# 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

azd deploy komutu kapsayıcıyı oluşturur, etiketler ve Docker kayıt deposuna gönderir.