작업을 통해 컨테이너 빌드 및 관리
ACR(Azure Container Registry) 작업은 다음을 수행하는 기능의 모음입니다.
- Linux, Windows 및 ARM(Advanced RISC Machines)과 같은 플랫폼을 위한 클라우드 기반 컨테이너 이미지 빌드를 제공합니다.
- 주문형 컨테이너 이미지 빌드를 사용하여 애플리케이션 개발 주기의 초기 부분을 클라우드로 확장합니다.
- 소스 코드 업데이트, 컨테이너의 기본 이미지 업데이트 또는 타이머에 의해 트리거되는 자동화된 빌드를 사용하도록 설정합니다.
작업 시나리오
ACR 작업은 컨테이너 이미지 및 기타 아티팩트를 빌드하고 유지 관리하는 여러 가지 시나리오를 지원합니다.
빠른 작업 - 로컬 Docker 엔진을 설치하지 않고도 Azure에서 요청 시 단일 컨테이너 이미지를 빌드하고 컨테이너 레지스트리로 푸시합니다. 클라우드의
docker build
,docker push
를 생각하면 됩니다.자동으로 트리거된 작업 - 하나 이상의 ‘트리거’를 사용하여 이미지를 빌드합니다.
- 소스 코드 업데이트 시 트리거
- 기본 이미지 업데이트 시 트리거
- 일정에 따라 트리거
다단계 작업 - 여러 단계/컨테이너를 기반으로 하는 워크플로를 통해 ACR 작업의 단일 이미지 작성 및 푸시 기능을 확장할 수 있습니다.
각 ACR 작업에는 연결된 소스 코드 컨텍스트(컨테이너 이미지 또는 다른 아티팩트를 빌드하는 데 사용되는 소스 파일 집합의 위치)가 있습니다. 예제 컨텍스트에는 Git 리포지토리 또는 로컬 파일 시스템이 포함됩니다.
빠른 작업
내부 루프 개발 주기는 소스 제어를 커밋하기 전에 애플리케이션 코드를 작성하고, 빌드하고, 테스트하는 반복적인 프로세스입니다. 이는 컨테이너 수명 주기 관리의 시작입니다.
첫 번째 코드 줄을 커밋하기 전에, ACR 작업의 빠른 작업 기능은 컨테이너 이미지 빌드를 Azure에 오프로드하여 통합 개발 환경을 제공할 수 있습니다. 빠른 작업을 사용하면 코드를 커밋하기 전에 자동화된 빌드 정의를 확인하고 잠재적인 문제점을 발견할 수 있습니다.
친숙한 docker build
형식을 사용하여 Azure CLI의 az acr build 명령에서 컨텍스트(빌드할 파일 집합)를 사용하고, 이를 ACR 작업으로 보내고, 기본적으로 완료되면 빌드된 이미지를 해당 레지스트리에 푸시합니다.
소스 코드 업데이트 시 작업 트리거
GitHub의 Git 리포지토리나 Azure DevOps Services로 코드를 커밋하거나, 끌어오기 요청을 수행하거나 업데이트할 때 컨테이너 이미지 빌드 또는 다단계 작업을 트리거합니다. 예를 들어 Git 리포지토리를 지정하고 선택적으로 분기 및 Dockerfile을 지정하여 az acr task create
Azure CLI 명령으로 빌드 작업을 구성합니다. 팀에서 리포지토리의 코드를 업데이트하면 ACR 작업에서 만든 웹후크에서 리포지토리에 정의된 컨테이너 이미지 빌드를 트리거합니다.
기본 이미지 업데이트 시 트리거
애플리케이션 이미지를 빌드할 때 기본 이미지에 대한 종속성을 추적하도록 ACR 작업을 설정할 수 있습니다. 업데이트된 기본 이미지가 레지스트리에 푸시되는 경우 또는 Docker Hub와 같은 퍼블릭 리포지토리에서 기본 이미지가 업데이트되는 경우 ACR 작업은 이에 따라 모든 애플리케이션 이미지를 자동으로 빌드할 수 있습니다.
작업 예약
필요에 따라 작업을 만들거나 업데이트할 때 하나 이상의 ‘타이머 트리거’를 설정하여 작업을 예약합니다. 작업 예약은 정의된 일정에 따라 컨테이너 작업을 실행하거나 레지스트리에 정기적으로 푸시되는 이미지에 대한 유지 관리 작업 또는 테스트를 실행하는 데 유용합니다.
다단계 작업
YAML 파일에 정의된 다단계 작업은 컨테이너 이미지 또는 다른 아티팩트에 대한 개별 빌드 및 푸시 작업을 지정합니다. 해당 실행 환경으로 컨테이너를 사용하여 각 단계로 하나 이상의 컨테이너 실행을 정의할 수도 있습니다. 예를 들어, 다음을 자동화하는 다단계 작업을 만들 수 있습니다.
- 웹 애플리케이션 이미지 빌드
- 웹 애플리케이션 컨테이너 실행
- 웹 애플리케이션 테스트 이미지 빌드
- 실행 중인 애플리케이션 컨테이너에 대해 테스트를 수행하는 웹 애플리케이션 테스트 컨테이너 실행
- 테스트에 통과하면 Helm 차트 보관 패키지 빌드
- 새 Helm 차트 보관 패키지를 사용하여
helm upgrade
수행
이미지 플랫폼
기본적으로 ACR 작업은 Linux OS 및 amd64 아키텍처용 이미지를 빌드합니다. 다른 아키텍처용으로 Windows 이미지 또는 Linux 이미지를 빌드하려면 --platform
태그를 지정합니다. OS를 지정하고 필요에 따라 OS/아키텍처 형식(예: --platform Linux/arm
)으로 지원되는 아키텍처를 지정합니다. ARM 아키텍처의 경우 필요에 따라 OS/아키텍처/변형 형식(예: --platform Linux/arm64/v8
)으로 변형을 지정합니다.
OS | 아키텍처 |
---|---|
Linux | AMD64 Arm Arm64 386 |
Windows | AMD64 |