Docker 템플릿을 사용하여 Docker 이미지 빌드 및 Azure Container Registry로 푸시
Azure DevOps Services
이 단계별 자습서에서는 컨테이너화된 애플리케이션을 빌드하기 위해 연속 통합 파이프라인을 설정하는 방법을 알아봅니다. 새 끌어오기 요청은 파이프라인을 트리거하여 Docker 이미지를 빌드하고 Azure Container Registry에 게시합니다.
필수 조건
GitHub 계정. 아직 없는 경우 무료 GitHub 계정을 만듭니다.
Azure DevOps 조직 및 프로젝트. 아직 없는 경우 새 조직 및/또는 새 프로젝트를 만듭니다.
Azure 계정. 아직 없는 경우 무료 Azure 계정에 등록합니다.
코드 가져오기
파이프라인-javascript-docker 샘플 애플리케이션을 포크하거나 복제합니다.
https://github.com/MicrosoftDocs/pipelines-javascript-docker
컨테이너 레지스트리 만들기
Azure에 로그인한 다음 오른쪽 위 모서리에서 Azure Cloud Shell 단추를 선택합니다.
다음 명령을 실행하여 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 이미지를 배포하려면 관리자 사용자 계정을 사용하도록 설정해야 합니다. 자세한 내용은 컨테이너 레지스트리 인증을 참조하세요.
파이프라인 만들기
Azure DevOps 조직에 로그인하고, 프로젝트로 이동합니다.
파이프라인을 선택한 다음 새 파이프라인을 선택하여 새 파이프라인을 만듭니다.
GitHub YAML을 선택한 다음, Azure Pipelines 권한 부여를 선택하여 리포지토리에 액세스할 수 있는 적절한 권한을 제공합니다.
GitHub에 로그인하라는 메시지가 표시될 수 있습니다. 그렇다면 GitHub 자격 증명을 입력한 다음 리포지토리 목록에서 리포지토리를 선택합니다.
구성 탭에서 Docker - 이미지를 빌드하고 Azure Container Registry 작업에 푸시합니다.
Azure 구독을 선택한 다음 계속을 선택합니다.
드롭다운 메뉴에서 컨테이너 레지스트리를 선택한 다음 컨테이너 이미지에 이미지 이름을 제공합니다.
유효성 검사를 선택하고 완료되면 구성 합니다.
Azure Pipelines는 파이프라인을 만들 때 다음을 수행합니다.
Docker 레지스트리 서비스 연결을 만들어 파이프라인이 이미지를 컨테이너 레지스트리에 푸시할 수 있도록 합니다.
파이프라인을 정의하는 azure-pipelines.yml 파일을 생성합니다.
파이프라인 YAML을 검토한 다음 저장을 선택하고 준비가 되면 실행 합니다.
커밋 메시지를 추가한 다음 저장 및 실행을 선택하여 변경 내용을 커밋하고 파이프라인을 실행합니다.
파이프라인이 실행되면 빌드 작업을 선택하여 파이프라인의 작동을 감시합니다.
파이프라인을 빌드하는 방법
이전 섹션에서 방금 만든 파이프라인은 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
관련된 문서
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기