타사 컨테이너 레지스트리 사용

Azure 개발자 CLI(azd)는 배포를 위해 외부 타사 컨테이너 레지스트리를 지원합니다. 이 기능을 사용하려면 배포를 호출 azd 하기 전에 외부 컨테이너 레지스트리에 수동으로 인증해야 합니다.

Docker 기반 인증은 이미지 끌어서 올리기, 빌드, 태그 지정 또는 푸시와 같은 이미지 작업을 관리하는 경우에만 필요합니다 azd . 서비스가 services.<name>.docker.imagePassthrough: true로 구성된 경우 azd는 구성된 원격 이미지를 수정하지 않고 그대로 재사용합니다. 이 경우 azd Docker 또는 Podman이 필요하지 않으며 해당 서비스에 대한 레지스트리 인증 또는 이미지 수명 주기 단계를 수행하지 않습니다.

인증

외부 컨테이너 레지스트리를 실행하고 docker login 인증합니다. 특정 레지스트리 공급자에 대한 추가 설정 또는 구성 단계를 수행해야 할 수 있습니다.

docker login <your-registry>

예제 시나리오

azd을(를) 템플릿의 azure.yaml 파일에서 외부 컨테이너 레지스트리로 이미지를 푸시하고 가져오도록 구성할 수 있습니다. 더 많은 컨테이너 레지스트리에 대한 지원은 배포 워크플로에 더 큰 유연성을 제공합니다.

외부 컨테이너 레지스트리에서 끌어오기

이 예제에서는 azd를 배포하는 동안 컨테이너를 docker.io/username/nginx:latest에서 가져오고, 컨테이너 앱 서비스에서 직접 참조합니다.

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 또는 Podman 없이 원격 이미지를 배포하려면 services.<name>.image를 설정하고, services.<name>.docker.imagePassthrough: true에 레지스트리를 포함한 정규화된 전체 이미지 이름을 지정합니다:

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 에는 다음과 같은 제약 조건이 있습니다.

  • services.<name>.image를 설정해야 합니다.
  • docker.remoteBuild와 결합할 수 없습니다.
  • 해당 서비스에서는 이미지 재정의 플래그 --from-package, --to, 및 azd publish를 지원하지 않습니다.

외부 레지스트리로 끌어오기, 태그 지정 및 푸시

다음 구성을 사용하여 azure.yaml 파일을 고려합니다.

# 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   

azd deploy 명령은 구성된 nginx 이미지를 끌어온다. 이 경우 Docker 허브의 공용 이미지이므로 azd 컨테이너/이미지의 태그를 다시 지정하고 docker 레지스트리에 푸시합니다.

azd deploy 시 외부 레지스트리에 빌드, 태그 추가 및 푸시

다음 구성을 사용하여 azure.yaml 파일을 고려합니다.

# 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 명령은 컨테이너를 빌드하고, 태그를 지정하고, Docker 레지스트리에 푸시합니다.