Share via


ACR 작업의 기본 이미지 업데이트 정보

이 문서에서는 애플리케이션의 기본 이미지 업데이트 및 이러한 업데이트가 Azure Container Registry 작업을 트리거하는 방법에 대한 배경 정보를 제공합니다.

기본 이미지란?

대부분의 컨테이너 이미지를 정의하는 Dockerfile은 이미지의 기반이 되는 상위 이미지(종종 기본 이미지라고 함)를 지정합니다. 기본 이미지에는 일반적으로 나머지 컨테이너 계층이 적용되는 Alpine Linux 또는 Windows Nano Server와 같은 운영 체제가 포함됩니다. Node.js 또는 .NET Core와 같은 애플리케이션 프레임워크도 포함될 수 있습니다. 이러한 기본 이미지는 일반적으로 공용 업스트림 이미지를 기반으로 합니다. 여러 애플리케이션 이미지가 공통 기본 이미지를 공유할 수 있습니다.

이미지의 OS 또는 프레임워크의 새로운 기능이나 향상된 기능을 포함하기 위해 이미지 유지 관리자에서 기본 이미지를 업데이트하는 경우가 많습니다. 보안 패치는 기본 이미지 업데이트에 대한 또 다른 일반적인 원인입니다. 이러한 업스트림 업데이트가 발생하는 경우 중요한 수정 사항을 포함하도록 기본 이미지도 업데이트해야 합니다. 이제 기본 이미지에 포함된 이러한 업스트림 수정 사항을 포함하도록 각 애플리케이션 이미지도 다시 작성해야 합니다.

프라이빗 개발 팀과 같은 경우에는 기본 이미지에서 OS 또는 프레임워크보다 더 지정할 수 있습니다. 예를 들어 기본 이미지는 추적해야 하는 공유 서비스 구성 요소 이미지일 수 있습니다. 팀 멤버는 테스트를 위해 이 기본 이미지를 추적하거나 애플리케이션 이미지를 개발할 때 이미지를 정기적으로 업데이트해야 할 수 있습니다.

기본 이미지의 복사본 유지 관리

Docker Hub와 같은 공용 레지스트리에 기본 기본 콘텐츠에 의존하는 레지스트리의 모든 콘텐츠의 경우 Azure 컨테이너 레지스트리 또는 다른 개인 레지스트리에 콘텐츠를 복사하는 것이 좋습니다. 그런 다음 프라이빗 기본 이미지를 참조하여 애플리케이션 이미지를 빌드해야 합니다. Azure Container Registry는 공용 레지스트리 또는 다른 Azure 컨테이너 레지스트리에서 콘텐츠를 쉽게 복사할 수 있는 이미지 가져오기 기능을 제공합니다. 다음 섹션에서는 ACR 작업을 사용하여 애플리케이션 업데이트를 빌드할 때 기본 이미지 업데이트를 추적하는 방법을 설명합니다. 사용자 고유의 Azure 컨테이너 레지스트리 및 필요에 따라 업스트림 공용 레지스트리에서 기본 이미지 업데이트를 추적할 수 있습니다.

기본 이미지 업데이트 추적

ACR 작업에는 컨테이너의 기본 이미지가 업데이트되면 자동으로 이미지를 빌드하는 기능이 포함됩니다. 이 기능을 사용하여 Azure 컨테이너 레지스트리에서 공용 기본 이미지의 복사본을 기본 및 업데이트한 다음 기본 이미지에 의존하는 애플리케이션 이미지를 다시 빌드할 수 있습니다.

ACR 작업은 컨테이너 이미지를 빌드할 때 기본 이미지 종속성을 동적으로 검색합니다. 따라서 애플리케이션 이미지의 기본 이미지가 업데이트되는 시기를 감지할 수 있습니다. 미리 구성된 빌드 작업 하나를 사용하여 ACR 작업은 기본 이미지를 참조하는 모든 애플리케이션 이미지를 자동으로 다시 빌드할 수 있습니다. 이 자동 검색 및 다시 빌드를 통해 ACR 작업은 업데이트된 기본 이미지를 참조하는 모든 애플리케이션 이미지를 수동으로 추적하고 업데이트하는 데 일반적으로 필요한 시간과 노력을 절약할 수 있습니다.

기본 이미지 위치

Dockerfile에서 이미지 빌드의 경우 ACR 작업은 다음 위치의 기본 이미지에 대한 종속성을 검색합니다.

  • 태스크가 실행되는 동일한 Azure Container Registry
  • 동일하거나 다른 지역에 있는 다른 프라이빗 Azure 컨테이너 레지스트리
  • Docker Hub의 공용 리포지토리
  • Microsoft Container Registry의 공용 리포지토리

FROM 문에 지정된 기본 이미지가 이러한 위치 중 하나에 있는 경우 ACR 작업은 기본이 업데이트될 때마다 이미지가 다시 빌드되도록 후크를 추가합니다.

기본 이미지 알림

기본 이미지가 업데이트되는 시간과 종속 작업이 트리거되는 시점 사이의 시간은 기본 이미지 위치에 따라 달라집니다.

  • Docker 허브 또는 MCR의 공용 리포지토리에서 기본 이미지 - 공용 리포지토리의 기본 이미지의 경우 ACR 작업은 10~60분 사이의 임의 간격으로 이미지 업데이트를 검사. 이에 따라 종속 작업이 실행됩니다.
  • Azure 컨테이너 레지스트리 의 기본 이미지 - Azure 컨테이너 레지스트리의 기본 이미지의 경우 ACR 작업은 기본 이미지가 업데이트되면 즉시 실행을 트리거합니다. 기본 이미지는 작업이 실행되는 동일한 ACR에 있거나 모든 지역의 다른 ACR에 있을 수 있습니다.

추가 고려 사항

  • 애플리케이션 이미지의 기본 이미지 - 현재 ACR 작업은 애플리케이션(런타임) 이미지에 대한 기본 이미지 업데이트만 추적합니다. 다단계 Dockerfiles에 사용되는 중간(빌드타임) 이미지에 대한 기본 이미지 업데이트를 추적하지 않습니다.

  • 기본적으로 사용 - az acr task create 명령을 사용하여 ACR 작업을 만들 때 기본적으로 작업은 기본 이미지 업데이트에 의해 트리거에 대해 사용하도록 설정됩니다. 즉, 속성이 base-image-trigger-enabled True로 설정됩니다. 작업에서 이 동작을 사용하지 않도록 설정하려면 속성을 False로 업데이트합니다. 예를 들어 다음 az acr task update 명령을 실행합니다.

    az acr task update --registry myregistry --name mytask --base-image-trigger-enabled False
    
  • 종속성 추적 트리거 - ACR 태스크가 기본 이미지를 포함하는 컨테이너 이미지의 종속성을 확인하고 추적할 수 있도록 하려면 먼저 작업을 트리거하여 이미지를 한 번 이상 빌드해야 합니다. 예를 들어 az acr task run 명령을 사용하여 작업을 수동으로 트리거합니다.

  • 기본 이미지에 대한 안정적인 태그 - 기본 이미지 업데이트에서 작업을 트리거하려면 기본 이미지에 다음과 같은 node:9-alpine안정적인 태그가 있어야 합니다. 이 태그 지정은 OS 및 프레임워크 패치를 사용하여 안정적인 최신 릴리스로 업데이트되는 기본 이미지에 일반적입니다. 기본 이미지가 새 버전 태그로 업데이트되면 작업을 트리거하지 않습니다. 이미지 태그 지정에 대한 자세한 내용은 모범 사례 지침을 참조하세요.

  • 기타 작업 트리거 - 기본 이미지 업데이트로 트리거되는 작업에서 소스 코드 커밋 또는 일정을 기반으로 트리거를 사용하도록 설정할 수도 있습니다. 기본 이미지 업데이트는 다단계 작업을 트리거할 수도 있습니다.

다음 단계

기본 이미지가 업데이트된 후 애플리케이션 이미지 빌드를 자동화하는 시나리오는 다음 자습서를 참조하세요.