Docker 템플릿을 사용하여 Docker 이미지 빌드 및 Azure Container Registry로 푸시

Azure DevOps Services

이 단계별 자습서에서는 컨테이너화된 애플리케이션을 빌드하기 위해 연속 통합 파이프라인을 설정하는 방법을 알아봅니다. 새 끌어오기 요청은 파이프라인을 트리거하여 Docker 이미지를 빌드하고 Azure Container Registry에 게시합니다.

필수 조건

코드 가져오기

파이프라인-javascript-docker 샘플 애플리케이션을 포크하거나 복제합니다.

https://github.com/MicrosoftDocs/pipelines-javascript-docker

컨테이너 레지스트리 만들기

  1. Azure에 로그인한 다음 오른쪽 위 모서리에서 Azure Cloud Shell 단추를 선택합니다.

    Azure Cloud Shell button

  2. 다음 명령을 실행하여 Azure CLI를 사용하여 리소스 그룹 및 Azure Container Registry를 만듭니다.

    # Create a resource group
    az group create --name myapp-rg --location eastus
    
    # Create a container registry
    az acr create --resource-group myapp-rg --name mycontainerregistry --sku Basic
    

참고 항목

Container Registry 이름은 소문자여야 합니다.

Azure Portal 웹 UI를 사용하여 Azure Container Registry를 만들 수도 있습니다. 자세한 내용은 컨테이너 레지스트리 만들기를 참조하세요.

Important

Azure Container Registry에서 Docker 이미지를 배포하려면 관리자 사용자 계정을 사용하도록 설정해야 합니다. 자세한 내용은 컨테이너 레지스트리 인증을 참조하세요.

파이프라인 만들기

  1. Azure DevOps 조직에 로그인하고, 프로젝트로 이동합니다.

  2. 파이프라인을 선택한 다음 새 파이프라인을 선택하여 새 파이프라인을 만듭니다.

    Create a new pipeline

  3. GitHub YAML을 선택한 다음, Azure Pipelines 권한 부여를 선택하여 리포지토리에 액세스할 수 있는 적절한 권한을 제공합니다.

  4. GitHub에 로그인하라는 메시지가 표시될 수 있습니다. 그렇다면 GitHub 자격 증명을 입력한 다음 리포지토리 목록에서 리포지토리를 선택합니다.

  5. 구성에서 Docker - 이미지를 빌드하고 Azure Container Registry 작업에 푸시합니다.

    Build and push Docker images to Azure Container Registry

  6. Azure 구독을 선택한 다음 계속을 선택합니다.

  7. 드롭다운 메뉴에서 컨테이너 레지스트리를 선택한 다음 컨테이너 이미지에 이미지 이름을 제공합니다.

  8. 유효성 검사를 선택하고 완료되면 구성 합니다.

    A screenshot showing how to configure a docker pipeline to build and publish an image to Azure Container Registry

    Azure Pipelines는 파이프라인을 만들 때 다음을 수행합니다.

    • Docker 레지스트리 서비스 연결을 만들어 파이프라인이 이미지를 컨테이너 레지스트리에 푸시할 수 있도록 합니다.

    • 파이프라인을 정의하는 azure-pipelines.yml 파일을 생성합니다.

  9. 파이프라인 YAML을 검토한 다음 저장을 선택하고 준비가 되면 실행 합니다.

    Review your pipeline, save & run

  10. 커밋 메시지를 추가한 다음 저장 및 실행을 선택하여 변경 내용을 커밋하고 파이프라인을 실행합니다.

  11. 파이프라인이 실행되면 빌드 작업을 선택하여 파이프라인의 작동을 감시합니다.

    Monitor builds

파이프라인을 빌드하는 방법

이전 섹션에서 방금 만든 파이프라인은 Docker 컨테이너 템플릿 YAML에서 생성되었습니다. 빌드 단계에서는 Docker 작업을Docker@2 사용하여 Docker 이미지를 빌드하고 컨테이너 레지스트리에 푸시합니다.

- stage: Build
  displayName: Build and push stage
  jobs:  
  - job: Build
    displayName: Build job
    pool:
      vmImage: $(vmImageName)
    steps:
    - task: Docker@2
      displayName: Build and push an image to container registry
      inputs:
        command: buildAndPush
        repository: $(imageRepository)
        dockerfile: $(dockerfilePath)
        containerRegistry: $(dockerRegistryServiceConnection)
        tags: |
          $(tag)

리소스 정리

이 애플리케이션을 계속 사용하지 않으려면 이 자습서에서 만든 리소스를 삭제하여 지속적인 요금이 발생하지 않도록 할 수 있습니다. 다음을 실행하여 리소스 그룹을 삭제합니다.

az group delete --name myapp-rg