Azure DevOps 파이프라인: Docker를 빌드 환경으로 사용
이러한 작업을 성공적으로 완료하려면 에이전트에 모든 종속성이 설치되어 있어야 하며 Microsoft 호스팅 에이전트에는 많은 언어 및 플랫폼에 대해 알려진 종속성이 상당히 많이 있습니다. Microsoft 호스팅 에이전트 및 각 에이전트의 종속성에 대한 자세한 정보here를 찾을 수 있습니다.
그러나 일부 시나리오에서는 보다 세분화된 제어가 필요하며 여전히 유효한 자체 호스팅 에이전트를 사용했습니다. 그러나 추가 VM(또는 컴퓨터)을 관리하는 것은 지루한 작업입니다. 따라서 동일한 작업을 수행하기 위해 도커 컨테이너를 사용합니다.
자체 호스팅 에이전트에 대해서는 here을 참조하십시오.
Azure DevOps 리포지토리 만들기
이미 사용하고 있다고 가정하여 방법을 설명하지 않겠습니다. 예제 앱으로 .NET 6 콘솔 앱을 만듭니다. 폴더 구조입니다.
CI 파이프라인 yaml
아래와 같이 빌드 파이프라인을 생성했습니다.
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- script: |
docker run --name $(Build.BuildNumber) -d -t mcr.microsoft.com/dotnet/sdk:6.0
docker cp $(Build.Repository.LocalPath)/ $(Build.BuildNumber):/app
docker exec $(Build.BuildNumber) bash -c 'cd /app/MyDotNetProject; dotnet publish -c Release -o out'
docker cp $(Build.BuildNumber):/app/MyDotNetProject/out $(Build.ArtifactStagingDirectory)
displayName: 'Build in docker and export artifacts'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
이 yaml에서 다음을 수행했습니다.
아래와 같이 빌드 파이프라인을 생성했습니다.
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- script: |
docker run --name $(Build.BuildNumber) -d -t mcr.microsoft.com/dotnet/sdk:6.0
docker cp $(Build.Repository.LocalPath)/ $(Build.BuildNumber):/app
docker exec $(Build.BuildNumber) bash -c 'cd /app/MyDotNetProject; dotnet publish -c Release -o out'
docker cp $(Build.BuildNumber):/app/MyDotNetProject/out $(Build.ArtifactStagingDirectory)
displayName: 'Build in docker and export artifacts'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
이 yaml에서 다음을 수행했습니다.
그 결과 아래와 같이 출력되는 것을 볼 수 있습니다.
상호 작용하기 쉽도록 실행 중인 컨테이너에 이름을 지정했습니다. Build.BuildNumber를 사용하지만 모든 문자열을 사용할 수 있습니다.
이것은 무엇을 의미 하는가?
이번에는 .NET 6 SDK 이미지를 사용했지만 빌드에 필요한 모든 종속성을 포함하는 자체 도커 이미지를 만들 수 있다고 추론합니다. 이러한 이미지를 생성하고 에이전트가 끌어서 실행할 수 있는 위치로 푸시하기만 하면 됩니다.
자체 호스팅 에이전트는 언제 사용하나요?
Microsoft 호스팅 에이전트는 동적으로 할당되고 도커 컨테이너 캐시가 없기 때문에 실행될 때마다 이미지를 다운로드하는 데 시간이 걸릴 수 있습니다. 이러한 시간을 절약하려면 자체 호스팅 에이전트가 유용합니다.
요약
이 기사에서는 CLI를 사용하여 docker 명령을 실행하지만 대부분의 명령은 docker 작업으로 대체하거나 재사용 가능한 스크립트를 작성하고 호출할 수 있습니다. 요점은 컨테이너를 DevOps 빌드 파이프라인 내부의 빌드 환경으로 사용할 수 있다는 것입니다!
Reference
이 문제에 관하여(Azure DevOps 파이프라인: Docker를 빌드 환경으로 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kenakamu/azure-devops-pipeline-use-docker-as-build-environment-1k1p
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Microsoft 호스팅 에이전트는 동적으로 할당되고 도커 컨테이너 캐시가 없기 때문에 실행될 때마다 이미지를 다운로드하는 데 시간이 걸릴 수 있습니다. 이러한 시간을 절약하려면 자체 호스팅 에이전트가 유용합니다.
요약
이 기사에서는 CLI를 사용하여 docker 명령을 실행하지만 대부분의 명령은 docker 작업으로 대체하거나 재사용 가능한 스크립트를 작성하고 호출할 수 있습니다. 요점은 컨테이너를 DevOps 빌드 파이프라인 내부의 빌드 환경으로 사용할 수 있다는 것입니다!
Reference
이 문제에 관하여(Azure DevOps 파이프라인: Docker를 빌드 환경으로 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/kenakamu/azure-devops-pipeline-use-docker-as-build-environment-1k1p
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Azure DevOps 파이프라인: Docker를 빌드 환경으로 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kenakamu/azure-devops-pipeline-use-docker-as-build-environment-1k1p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)