Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
이 문서에서는 Azure Pipelines를 사용하여 Azure Container Registry, Docker Hub 및 Google Artifact Registry에 Docker 이미지를 빌드하고 푸시하기 위한 설정 및 구성을 안내합니다. 또한 파이프라인 내에서 보안 인증을 사용하는 방법에 System.AccessToken 대해 자세히 설명합니다.
이 문서에서는 Azure Pipelines를 사용하여 Docker 이미지를 빌드하고 Docker 허브 및 Google Artifact Registry에 푸시하기 위한 설정 및 구성을 안내합니다. 또한 파이프라인 내에서 보안 인증을 사용하는 방법에 System.AccessToken 대해 자세히 설명합니다.
DOCKER 이미지를 빌드하고 컨테이너 레지스트리에 푸시하는 YAML 파이프라인을 만드는 방법을 알아봅니다. Docker@2 작업은 이미지를 빌드하고 컨테이너 레지스트리에 푸시하는 데 사용됩니다.
필수 조건
Azure DevOps 프로젝트입니다.
컨테이너 레지스트리(Docker Hub, Google Artifact Registry 또는 Azure Container Registry).
Dockerfile이 있는 GitHub 리포지토리입니다. 이 리포지토리가 없는 경우 브라우저에서 샘플 리포지토리를 사용하고 샘플 리포지토리로 이동한 다음 GitHub 계정으로 포크할 수 있습니다.
Docker. 자체 호스팅 에이전트를 사용하는 경우 Docker가 설치되어 있고 Docker 엔진이 상승된 권한으로 실행되는지 확인합니다. Microsoft 호스팅 에이전트에는 Docker가 미리 설치되어 있습니다.
Azure DevOps 프로젝트입니다.
컨테이너 레지스트리(Docker 허브 또는 Google 아티팩트 레지스트리).
Dockerfile이 있는 GitHub 리포지토리입니다. 이 리포지토리가 없는 경우 브라우저에서 샘플 리포지토리를 사용하고 샘플 리포지토리로 이동한 다음 GitHub 계정으로 포크할 수 있습니다.
Docker. 자체 호스팅 에이전트를 사용하는 경우 Docker가 설치되어 있고 Docker 엔진이 상승된 권한으로 실행되는지 확인합니다. Microsoft 호스팅 에이전트에는 Docker가 미리 설치되어 있습니다.
Docker 서비스 연결 만들기
레지스트리에 컨테이너 이미지를 푸시하기 전에 Azure DevOps에서 서비스 연결을 만들어야 합니다. 이 서비스 연결은 컨테이너 레지스트리를 사용하여 안전하게 인증하는 데 필요한 자격 증명을 저장합니다. Azure DevOps 프로젝트의 서비스 연결 페이지로 이동하여 새 서비스 연결을 만들고 Docker 레지스트리 연결 유형을 선택합니다.
Docker 허브 및 Google 아티팩트 레지스트리에 대한 서비스 연결을 만드는 프로세스는 서로 다릅니다.
Docker 레지스트리 서비스 연결에서 Docker 허브 옵션을 선택하고 사용자 이름과 암호를 제공하여 Docker 서비스 연결을 만듭니다.
Docker 레지스트리 서비스 연결에서 Azure Container Registry 옵션을 선택하고 선택한 인증 방법에 필요한 정보를 제공합니다.
Docker 템플릿을 사용하여 파이프라인을 만들어 이미지를 빌드하고 Azure Container Registry에 푸시할 수도 있습니다. 이 템플릿은 자동으로 서비스 연결 및 YAML 파이프라인을 만듭니다. 자세한 내용은 Docker YAML을 사용하여 이미지를 빌드하고 Azure Container Registry에 푸시하는 방법을 참조 하세요.
Azure Container Registry에 Docker 이미지를 푸시하는 것은 Azure DevOps Server에서 지원되지 않습니다.
Google Artifact Registry와 연결된 Docker 서비스 연결을 만들려면 다음을 수행합니다.
GCP(Google Cloud Platform) 콘솔에서 프로젝트를 연 다음 Cloud Shell을 엽니다.
프로젝트 ID 및 컴퓨팅 엔진 영역 옵션을 입력하는 시간을 절약하려면 다음 명령을 실행하여 기본 구성 값을 설정합니다.
gcloud config set project [PROJECT_NAME]
gcloud config set compute/zone [ZONE]
GCP 프로젝트의 이름으로 바꾸고 리소스를 만드는 데 사용할 영역의 이름으로 바 [ZONE] 꿉 [PROJECT_NAME] 니다. 선택할 영역이 확실하지 않은 경우 다음을 사용합니다 us-central1-a. 예시:
gcloud config set project azure-pipelines-test-project-12345
gcloud config set compute/zone us-central1-a
Docker@2 작업은 Azure Pipelines 내에서 Docker 이미지를 빌드, 푸시 및 관리하는 프로세스를 간소화하도록 설계되었습니다. 이 작업은 빌드, 푸시, 로그인, 로그아웃, 시작, 중지 및 실행을 비롯한 광범위한 Docker 명령을 지원합니다.
다음 단계에서는 Docker@2 작업을 사용하여 이미지를 빌드하고 푸시하는 YAML 파이프라인을 만드는 방법을 간략하게 설명합니다.
Azure DevOps 프로젝트로 이동하고 왼쪽 메뉴에서 파이프라인을 선택합니다.
새 파이프라인을 선택하여 새 파이프라인을 만듭니다.
소스 코드의 위치로 GitHub 또는 GitHub Enterprise Server를 선택합니다.
아직 연결하지 않은 경우 GitHub Enterprise Server 계정에 연결하도록 Azure Pipelines에 권한을 부여합니다.
GitHub Enterprise Server에 연결을 선택합니다.
계정 세부 정보를 입력한 다음 확인 및 저장을 선택합니다.
리포지토리를 선택합니다.
GitHub로 리디렉션된 경우
시작 파이프라인 템플릿을 선택하여 기본 파이프라인 구성을 만듭니다.
azure-pipelines.yml 내용을 다음 코드로 바꿉니다.
Linux 또는 Windows 앱을 배포하는지 여부에 따라 각각 중 하나 ubuntu-latest 또는 windows-latest.로 설정 vmImage 해야 합니다. 자체 호스팅 에이전트를 사용하는 경우 Docker 기능이 있는 자체 호스팅 에이전트를 포함하는 풀의 이름으로 설정합니다 vmImage . 속성을 추가하여 demands: docker Docker가 설치된 에이전트가 선택되었는지 확인할 수 있습니다.
이전에 만든 Docker 서비스 연결의 이름으로 바꿉 <docker connection> 습니다.
이미지를 푸시하려는 컨테이너 레지스트리의 리포지토리 이름으로 바꿉 <target repository name> 습니다. 예들 들어 <your-docker-hub-username>/<repository-name>입니다.
파이프라인 실행을 확인하고 로그를 확인하여 Docker 이미지가 빌드되고 컨테이너 레지스트리로 푸시되는지 확인할 수 있습니다.
Docker YAML을 사용하여 Docker 이미지를 빌드하고 Azure Container Registry에 푸시하거나 다음 단계를 사용하는 Docker 템플릿 을 사용하여 Docker 이미지를 빌드하고 Azure 컨테이너 레지스트리 에 푸시하는 YAML 파이프라인을 만들 수 있습니다.
Docker@2 작업은 이미지를 빌드하고 컨테이너 레지스트리에 푸시하는 데 사용됩니다.
Docker@2 작업은 Azure Pipelines 내에서 Docker 이미지를 빌드, 푸시 및 관리하는 프로세스를 간소화하도록 설계되었습니다. 이 작업은 빌드, 푸시, 로그인, 로그아웃, 시작, 중지 및 실행을 비롯한 광범위한 Docker 명령을 지원합니다.
다음 단계에서는 Docker@2 작업을 사용하여 이미지를 빌드하고 푸시하는 YAML 파이프라인을 만드는 방법을 간략하게 설명합니다.
Azure DevOps 프로젝트로 이동하고 왼쪽 메뉴에서 파이프라인을 선택합니다.
새 파이프라인을 선택하여 새 파이프라인을 만듭니다.
소스 코드의 위치로 GitHub 또는 GitHub Enterprise Server를 선택합니다.
아직 연결하지 않은 경우 GitHub Enterprise Server 계정에 연결하도록 Azure Pipelines에 권한을 부여합니다.
GitHub Enterprise Server에 연결을 선택합니다.
계정 세부 정보를 입력한 다음 확인 및 저장을 선택합니다.
리포지토리를 선택합니다.
시작 파이프라인 템플릿을 선택하여 기본 파이프라인 구성을 만듭니다.
azure-pipelines.yml 내용을 다음 코드로 바꿉니다.
Linux 또는 Windows 앱을 배포하는지 여부에 따라 각각 중 하나 ubuntu-latest 또는 windows-latest.로 설정 vmImage 해야 합니다. 자체 호스팅 에이전트를 사용하는 경우 Docker 기능이 있는 자체 호스팅 에이전트를 포함하는 풀의 이름으로 설정합니다 vmImage . 속성을 추가하여 demands: docker Docker가 설치된 에이전트가 선택되었는지 확인할 수 있습니다.
이전에 만든 Docker 서비스 연결의 이름으로 바꿉 <docker connection> 습니다.
이미지를 푸시하려는 컨테이너 레지스트리의 리포지토리 이름으로 바꿉 <target repository name> 습니다. 예들 들어 myregistry.azurecr.io/myimage입니다.
Docker@2 작업은 Azure Pipelines 내에서 Docker 이미지를 빌드, 푸시 및 관리하는 프로세스를 간소화하도록 설계되었습니다. 이 작업은 빌드, 푸시, 로그인, 로그아웃, 시작, 중지 및 실행을 비롯한 광범위한 Docker 명령을 지원합니다.
다음 단계에서는 Docker@2 작업을 사용하여 이미지를 빌드하고 푸시하는 YAML 파이프라인을 만드는 방법을 간략하게 설명합니다.
Azure DevOps 프로젝트로 이동하고 왼쪽 메뉴에서 파이프라인을 선택합니다.
새 파이프라인을 선택하여 새 파이프라인을 만듭니다.
소스 코드의 위치로 GitHub 또는 GitHub Enterprise Server를 선택합니다.
아직 연결하지 않은 경우 GitHub Enterprise Server 계정에 연결하도록 Azure Pipelines에 권한을 부여합니다.
GitHub Enterprise Server에 연결을 선택합니다.
계정 세부 정보를 입력한 다음 확인 및 저장을 선택합니다.
리포지토리를 선택합니다.
시작 파이프라인 템플릿을 선택하여 기본 파이프라인 구성을 만듭니다.
azure-pipelines.yml 내용을 다음 코드로 바꿉니다.
Linux 또는 Windows 앱을 배포하는지 여부에 따라 각각 중 하나 ubuntu-latest 또는 windows-latest.로 설정 vmImage 해야 합니다. 자체 호스팅 에이전트를 사용하는 경우 Docker 기능이 있는 자체 호스팅 에이전트를 포함하는 풀의 이름으로 설정합니다 vmImage . 속성을 추가하여 demands: docker Docker가 설치된 에이전트가 선택되었는지 확인할 수 있습니다.
이전에 만든 Docker 서비스 연결의 이름으로 바꿉 <docker connection> 습니다.
이미지를 푸시하려는 컨테이너 레지스트리의 리포지토리 이름으로 바꿉 <target repository name> 습니다. 예들 들어 <your-project-id>/<your-image-name>입니다.