Maven
참고 : https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/build/maven?view=azure-devops
YAML snippet
# Maven
# Build, test, and deploy with Apache Maven
- task: Maven@4
inputs:
#mavenPomFile: 'pom.xml'
#goals: 'package' # Optional
#options: # Optional
#publishJUnitResults: true
#testResultsFiles: '**/surefire-reports/TEST-*.xml' # Required when publishJUnitResults == True
#testRunTitle: # Optional
#allowBrokenSymlinks: false # Optional. Has effect only when publishJUnitResults == True
#codeCoverageToolOption: 'None' # Optional. Options: none, cobertura, jaCoCo. Enabling code coverage inserts the `clean` goal into the Maven goals list when Maven runs.
#codeCoverageClassFilter: # Optional. Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*
#codeCoverageClassFilesDirectories: # Optional | Required for a multi-module project
#codeCoverageSourceDirectories: # Optional | Required for a multi-module project
#codeCoverageFailIfEmpty: false # Optional
#codeCoverageRestoreOriginalPomXml: false # Optional
#javaHomeOption: 'JDKVersion' # Options: jDKVersion, path
#jdkVersionOption: 'default' # Optional. Options: default, 1.14, 1.13, 1.12, 1.11, 1.10, 1.9, 1.8, 1.7, 1.6
#jdkDirectory: # Required when javaHomeOption == Path
#jdkArchitectureOption: 'x64' # Optional. Options: x86, x64
#mavenVersionOption: 'Default' # Options: default, path
#mavenDirectory: # Required when mavenVersionOption == Path
#mavenSetM2Home: false # Required when mavenVersionOption == Path
#mavenOptions: '-Xmx1024m' # Optional
#mavenAuthenticateFeed: false
#effectivePomSkip: false
#sonarQubeRunAnalysis: false
#isJacocoCoverageReportXML: false # Optional
#sqMavenPluginVersionChoice: 'latest' # Required when sonarQubeRunAnalysis == True# Options: latest, pom
#checkStyleRunAnalysis: false # Optional
#pmdRunAnalysis: false # Optional
#findBugsRunAnalysis: false # Optional
#spotBugsRunAnalysis: false # Optional
#spotBugsVersion: 4.5.3.0 # Optional
#spotBugsGoal: spotbugs # Optional
#sbFailWhenBugsFound: true # Optional
Docker Compose task
참고 : https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/build/docker-compose?view=azure-devops
컨테이너 레지스트리 유형
Azure Container Registry
매개 변수 설명
containerregistrytype
(컨테이너 레지스트리 유형) (선택 사항) 다른 컨테이너 레지스트리를 사용하는 경우 ACR 또는 Container Registry를 사용하는 경우 Azure Container Registry.
기본값: Azure Container Registry
azureSubscriptionEndpoint
(Azure 구독) (필수) Azure 서비스 연결의 이름입니다. 수동으로 연결을 설정하려면 Azure Resource Manager 서비스 연결을 참조하세요.
인수 별칭: azureSubscription
azureContainerRegistry
(Azure Container Registry) (필수) Azure Container Registry 이름입니다.
예: Contoso.azurecr.io
이 YAML 예제는 Azure Container Registry 대한 입력을 지정합니다.
YAML
복사
variables:
azureContainerRegistry: Contoso.azurecr.io
azureSubscriptionEndpoint: Contoso
steps:
- task: DockerCompose@0
displayName: Container registry login
inputs:
containerregistrytype: Azure Container Registry
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: $(azureContainerRegistry)
기타 컨테이너 레지스트리
ACR 이외의 컨테이너 레지스트리를 사용하는 경우 containerregistrytype 값이 필요합니다. 이 경우 사용합니다 containerregistrytype: Container Registry .
매개 변수 설명
containerregistrytype
(컨테이너 레지스트리 유형) (필수) 다른 컨테이너 레지스트리를 사용하는 경우 ACR 또는 Container Registry를 사용하는 경우 Azure Container Registry.
기본값: Azure Container Registry
dockerRegistryEndpoint
(Docker 레지스트리 서비스 연결) (필수) Docker 레지스트리 서비스 연결.
이 YAML 예제는 Contoso 가 컨테이너 레지스트리에 대한 Docker 레지스트리 서비스 연결의 이름인 ACR 이외의 컨테이너 레지스트리를 지정합니다.
YAML
복사
- task: DockerCompose@0
displayName: Container registry login
inputs:
containerregistrytype: Container Registry
dockerRegistryEndpoint: Contoso
서비스 이미지 빌드
매개 변수 설명
containerregistrytype
(Container Registry 형식) (필수) 다른 컨테이너 레지스트리를 사용하는 경우 ACR 또는 Container Registry를 사용하는 경우 Azure Container Registry.
기본값: Azure Container Registry
azureSubscriptionEndpoint
(Azure 구독) (필수) Azure 서비스 연결의 이름입니다.
azureContainerRegistry
(Azure Container Registry) (필수) Azure Container Registry 이름입니다.
dockerComposeFile
(Docker Compose 파일) (필수) 사용할 기본 Docker Compose 파일의 경로입니다.
기본값: **/docker-compose.yml
additionalDockerComposeFiles
(추가 Docker Compose 파일) (선택 사항) 기본 Docker Compose 파일과 결합할 추가 Docker Compose 파일입니다. 상대 경로는 기본 Docker Compose 파일이 포함된 디렉터리를 기준으로 확인됩니다. 지정된 파일을 찾을 수 없으면 무시됩니다. 새 줄에 각 파일 경로를 지정합니다.
dockerComposeFileArgs
(환경 변수) (선택 사항) 명령 중에 설정할 환경 변수입니다. 새 줄에 각 이름 = 값 쌍을 지정합니다. | 사용해야 합니다. 연산자는 줄 줄이 유지되어야 함을 나타내는 연산자입니다.
예: dockerComposeFileArgs: DOCKER_BUILD_SOURCE=$(CustomVar)
projectName
(프로젝트 이름) (선택 사항) 이미지 및 컨테이너의 기본 이름 지정에 사용되는 프로젝트 이름입니다.
기본값: $(Build.Repository.Name)
qualifyImageNames
(이미지 이름 한정) (선택 사항) 달리 지정되지 않은 경우 Docker 레지스트리 서비스 연결의 호스트 이름을 사용하여 빌드된 서비스의 이미지 이름을 한정합니다.
기본값: true
action
(작업) (필수) Docker Compose 작업을 선택합니다.
기본값: Docker Compose 명령 실행
additionalImageTags
(추가 이미지 태그) (선택 사항) 빌드 또는 푸시되는 Docker 이미지에 대한 추가 태그입니다. 줄 바꿈 \n을 사용하여 여러 태그를 지정합니다.
includeSourceTags
(원본 태그 포함) (선택 사항) Docker 이미지를 빌드하거나 푸시할 때 Git 태그를 포함합니다.
기본값: false
includeLatestTag
(최신 태그 포함) (선택 사항) Docker 이미지를 빌드하거나 푸시할 때 최신 태그를 포함합니다.
기본값: false
이 YAML 예제는 Azure Container Registry 관련된 입력을 기반으로 이미지 이름이 정규화된 이미지를 빌드합니다.
YAML
복사
- task: DockerCompose@0
displayName: Build services
inputs:
action: Build services
azureSubscriptionEndpoint: (azureSubscriptionEndpoint) azureContainerRegistry: $(azureContainerRegistry) dockerComposeFile: docker-compose.yml projectName: $(Build.Repository.Name) qualifyImageNames: true additionalImageTags: $(Build.BuildId) dockerComposeFileArgs: | firstArg=(firstArg)
secondArg=$(secondArg)
푸시 서비스 이미지
매개 변수 설명
containerregistrytype
(Container Registry 형식) (필수) 다른 컨테이너 레지스트리를 사용하는 경우 ACR 또는 Container Registry를 사용하는 경우 Azure Container Registry.
기본값: Azure Container Registry
azureSubscriptionEndpoint
(Azure 구독) (필수) Azure 서비스 연결의 이름입니다.
azureContainerRegistry
(Azure Container Registry) (필수) Azure Container Registry 이름입니다.
dockerComposeFile
(Docker Compose 파일) (필수) 사용할 기본 Docker Compose 파일의 경로입니다.
기본값: **/docker-compose.yml
additionalDockerComposeFiles
(추가 Docker Compose 파일) (선택 사항) 기본 Docker Compose 파일과 결합할 추가 Docker Compose 파일입니다. 상대 경로는 기본 Docker Compose 파일이 포함된 디렉터리를 기준으로 확인됩니다. 지정된 파일을 찾을 수 없으면 무시됩니다. 새 줄에 각 파일 경로를 지정합니다.
dockerComposeFileArgs
(환경 변수) (선택 사항) 명령 중에 설정할 환경 변수입니다. 새 줄에 각 name=value 쌍을 지정합니다.
projectName
(프로젝트 이름) (선택 사항) 이미지 및 컨테이너의 기본 이름 지정에 사용되는 프로젝트 이름입니다.
기본값: $(Build.Repository.Name)
qualifyImageNames
(이미지 이름 한정) (선택 사항) 달리 지정하지 않으면 Docker 레지스트리 서비스 연결의 호스트 이름을 사용하여 빌드된 서비스의 이미지 이름을 한정합니다.
기본값: true
action
(작업) (필수) Docker 작성 작업을 선택합니다.
기본값: Docker Compose 명령 실행
additionalImageTags
(추가 이미지 태그) (선택 사항) 빌드 또는 푸시되는 Docker 이미지에 대한 추가 태그입니다.
includeSourceTags
(원본 태그 포함) (선택 사항) Docker 이미지를 빌드하거나 푸시할 때 Git 태그를 포함합니다.
기본값: false
includeLatestTag
(최신 태그 포함) (선택 사항) Docker 이미지를 빌드하거나 푸시할 때 최신 태그를 포함합니다.
기본값: false
이 YAML 예제에서는 컨테이너 레지스트리에 이미지를 푸시합니다.
YAML
복사
- task: DockerCompose@0
displayName: Push services
inputs:
action: Push services
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: $(azureContainerRegistry)
dockerComposeFile: docker-compose.yml
projectName: $(Build.Repository.Name)
qualifyImageNames: true
additionalImageTags: $(Build.BuildId)
서비스 이미지 실행
매개 변수 설명
dockerComposeFile
(Docker Compose 파일) (필수) 사용할 기본 Docker Compose 파일의 경로입니다.
기본값: **/docker-compose.yml
additionalDockerComposeFiles
(추가 Docker 작성 파일) (선택 사항) 기본 Docker Compose 파일과 결합할 추가 Docker Compose 파일입니다. 상대 경로는 기본 Docker Compose 파일이 포함된 디렉터리를 기준으로 확인됩니다. 지정된 파일을 찾을 수 없으면 무시됩니다. 새 줄에서 각 파일 경로를 지정합니다.
dockerComposeFileArgs
(환경 변수) (선택 사항) 명령 중에 설정할 환경 변수입니다. 새 줄에서 각 name=value 쌍을 지정합니다.
projectName
(프로젝트 이름) (선택 사항) 이미지 및 컨테이너의 기본 명명에 사용되는 프로젝트 이름입니다.
기본값: $(Build.Repository.Name)
qualifyImageNames
(이미지 이름 한정) (선택 사항) 달리 지정하지 않으면 Docker 레지스트리 서비스 연결의 호스트 이름을 사용하여 빌드된 서비스의 이미지 이름을 한정합니다.
기본값: true
action
(작업) (필수) Docker 작성 작업을 선택합니다.
기본값: Docker Compose 명령 실행
buildImages
(이미지 빌드) (선택 사항) 서비스 컨테이너를 시작하기 전에 이미지를 빌드합니다.
기본값: true
detached
(백그라운드에서 실행) (선택 사항) 백그라운드에서 서비스 컨테이너를 실행합니다.
기본값: true
이 YAML 예제에서는 서비스를 실행합니다.
YAML
복사
- task: DockerCompose@0
displayName: Run services
inputs:
action: Run services
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: $(azureContainerRegistry)
dockerComposeFile: docker-compose.ci.build.yml
projectName: $(Build.Repository.Name)
qualifyImageNames: true
buildImages: true
abortOnContainerExit: true
detached: false
특정 서비스 이미지 실행
매개 변수 설명
dockerComposeFile
(Docker Compose 파일) (필수) 사용할 기본 Docker Compose 파일의 경로입니다.
기본값: **/docker-compose.yml
additionalDockerComposeFiles
(추가 Docker 작성 파일) (선택 사항) 기본 Docker Compose 파일과 결합할 추가 Docker Compose 파일입니다. 상대 경로는 기본 Docker Compose 파일이 포함된 디렉터리를 기준으로 확인됩니다. 지정된 파일을 찾을 수 없으면 무시됩니다. 새 줄에서 각 파일 경로를 지정합니다.
dockerComposeFileArgs
(환경 변수) (선택 사항) 명령 중에 설정할 환경 변수입니다. 새 줄에서 각 name=value 쌍을 지정합니다.
projectName
(프로젝트 이름) (선택 사항) 이미지 및 컨테이너의 기본 명명에 사용되는 프로젝트 이름입니다.
기본값: $(Build.Repository.Name)
qualifyImageNames
(이미지 이름 한정) (선택 사항) 달리 지정하지 않으면 Docker 레지스트리 서비스 연결의 호스트 이름을 사용하여 빌드된 서비스의 이미지 이름을 한정합니다.
기본값: true
action
(작업) (필수) Docker 작성 작업을 선택합니다.
기본값: Docker Compose 명령 실행
serviceName
(서비스 이름) (필수) 실행할 특정 서비스의 이름입니다.
containerName
(컨테이너 이름) (선택 사항) 실행할 특정 서비스 컨테이너의 이름입니다.
ports
(포트) (선택 사항) 호스트에 게시할 특정 서비스 컨테이너의 포트입니다. 새 줄에서 각 호스트 포트:컨테이너 포트 바인딩을 지정합니다.
workDir
(작업 디렉터리) (선택 사항) 특정 서비스 컨테이너에 대한 작업 디렉터리입니다.
인수 별칭: workingDirectory
entrypoint
(진입점 재정의) (선택 사항) 특정 서비스 컨테이너의 기본 진입점을 재정의합니다.
containerCommand
(명령) (선택 사항) 특정 서비스 컨테이너에서 실행하는 명령입니다. 예를 들어 이미지에 간단한 Python Flask 웹 애플리케이션이 포함된 경우 python app.py 지정하여 웹 애플리케이션을 시작할 수 있습니다.
detached
(백그라운드에서 실행) (선택 사항) 백그라운드에서 서비스 컨테이너를 실행합니다.
기본값: true
이 YAML 예제는 특정 서비스를 실행합니다.
YAML
복사
- task: DockerCompose@0
displayName: Run a specific service
inputs:
action: Run a specific service
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: $(azureContainerRegistry)
dockerComposeFile: docker-compose.yml
projectName: $(Build.Repository.Name)
qualifyImageNames: true
serviceName: myhealth.web
ports: 80:80
detached: true
서비스 이미지 잠금
매개 변수 설명
dockerComposeFile
(Docker Compose 파일) (필수) 사용할 기본 Docker Compose 파일의 경로입니다.
기본값: **/docker-compose.yml
additionalDockerComposeFiles
(추가 Docker 작성 파일) (선택 사항) 기본 Docker Compose 파일과 결합할 추가 Docker Compose 파일입니다. 상대 경로는 기본 Docker Compose 파일이 포함된 디렉터리를 기준으로 확인됩니다. 지정된 파일을 찾을 수 없으면 무시됩니다. 새 줄에서 각 파일 경로를 지정합니다.
dockerComposeFileArgs
(환경 변수) (선택 사항) 명령 중에 설정할 환경 변수입니다. 새 줄에서 각 name=value 쌍을 지정합니다.
projectName
(프로젝트 이름) (선택 사항) 이미지 및 컨테이너의 기본 이름 지정에 사용되는 프로젝트 이름입니다.
기본값: $(Build.Repository.Name)
qualifyImageNames
(이미지 이름 한정) (선택 사항) 달리 지정되지 않은 경우 Docker 레지스트리 서비스 연결의 호스트 이름을 사용하여 빌드된 서비스의 이미지 이름을 한정합니다.
기본값: true
action
(작업) (필수) Docker Compose 작업을 선택합니다.
기본값: Docker Compose 명령 실행
removeBuildOptions
(빌드 옵션 제거) (선택 사항) 출력 Docker Compose 파일에서 빌드 옵션을 제거합니다.
기본값: false
baseResolveDirectory
(Base Resolve Directory) (선택 사항) 출력 Docker Compose 파일의 상대 경로를 확인해야 하는 기본 디렉터리입니다.
outputDockerComposeFile
(출력 Docker Compose 파일) (필수) 출력 Docker Compose 파일의 경로입니다.
기본값: $(Build.StagingDirectory)/docker-compose.yml
이 YAML 예제는 서비스를 잠가줍니다.
YAML
복사
- task: DockerCompose@0
displayName: Lock services
inputs:
action: Lock services
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: $(azureContainerRegistry)
dockerComposeFile: docker-compose.yml
projectName: $(Build.Repository.Name)
qualifyImageNames: true
outputDockerComposeFile: $(Build.StagingDirectory)/docker-compose.yml
서비스 이미지 다이제스트 작성
매개 변수 설명
dockerComposeFile
(Docker Compose 파일) (필수) 사용할 기본 Docker Compose 파일의 경로입니다.
기본값: **/docker-compose.yml
additionalDockerComposeFiles
(추가 Docker Compose 파일) (선택 사항) 기본 Docker Compose 파일과 결합할 추가 Docker Compose 파일입니다. 상대 경로는 기본 Docker Compose 파일이 포함된 디렉터리를 기준으로 확인됩니다. 지정된 파일을 찾을 수 없으면 무시됩니다. 새 줄에 각 파일 경로를 지정합니다.
dockerComposeFileArgs
(환경 변수) (선택 사항) 명령 중에 설정할 환경 변수입니다. 새 줄에 각 name=value 쌍을 지정합니다.
projectName
(프로젝트 이름) (선택 사항) 이미지 및 컨테이너의 기본 이름 지정에 사용되는 프로젝트 이름입니다.
기본값: $(Build.Repository.Name)
qualifyImageNames
(이미지 이름 한정) (선택 사항) 달리 지정되지 않은 경우 Docker 레지스트리 서비스 연결의 호스트 이름을 사용하여 빌드된 서비스의 이미지 이름을 한정합니다.
기본값: true
action
(작업) (필수) Docker Compose 작업을 선택합니다.
기본값: Docker Compose 명령 실행
imageDigestComposeFile
(이미지 다이제스트 작성 파일) (필수) 각 서비스의 Docker 이미지에 대한 전체 이미지 리포지토리 다이제스트로 만들어지고 채워진 Docker Compose 파일의 경로입니다.
기본값: $(Build.StagingDirectory)/docker-compose.images.yml
이 YAML 예제는 서비스 이미지 다이제스트를 씁니다.
YAML
복사
- task: DockerCompose@0
displayName: Write service image digests
inputs:
action: Write service image digests
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: $(azureContainerRegistry)
dockerComposeFile: docker-compose.yml
projectName: $(Build.Repository.Name)
qualifyImageNames: true
imageDigestComposeFile: $(Build.StagingDirectory)/docker-compose.images.yml
구성 결합
매개 변수 설명
dockerComposeFile
(Docker Compose 파일) (필수) 사용할 기본 Docker Compose 파일의 경로입니다.
기본값: **/docker-compose.yml
additionalDockerComposeFiles
(추가 Docker Compose 파일) (선택 사항) 기본 Docker Compose 파일과 결합할 추가 Docker Compose 파일입니다. 상대 경로는 기본 Docker Compose 파일이 포함된 디렉터리를 기준으로 확인됩니다. 지정된 파일을 찾을 수 없으면 무시됩니다. 새 줄에 각 파일 경로를 지정합니다.
dockerComposeFileArgs
(환경 변수) (선택 사항) 명령 중에 설정할 환경 변수입니다. 새 줄에 각 name=value 쌍 지정
projectName
(프로젝트 이름) (선택 사항) 이미지 및 컨테이너의 기본 이름 지정에 사용되는 프로젝트 이름입니다.
기본값: $(Build.Repository.Name)
qualifyImageNames
(이미지 이름 한정) (선택 사항) 달리 지정되지 않은 경우 Docker 레지스트리 서비스 연결의 호스트 이름을 사용하여 빌드된 서비스의 이미지 이름을 한정합니다.
기본값: true
action
(작업) (필수) Docker Compose 작업을 선택합니다.
기본값: Docker Compose 명령 실행
removeBuildOptions
(빌드 옵션 제거) (선택 사항) 출력 Docker Compose 파일에서 빌드 옵션을 제거합니다.
기본값: false
baseResolveDirectory
(Base Resolve Directory) (선택 사항) 출력 Docker Compose 파일의 상대 경로를 확인해야 하는 기본 디렉터리입니다.
outputDockerComposeFile
(출력 Docker Compose 파일) (필수) 출력 Docker Compose 파일의 경로입니다.
기본값: $(Build.StagingDirectory)/docker-compose.yml
이 YAML 예제는 구성을 결합합니다.
YAML
복사
- task: DockerCompose@0
displayName: Combine configuration
inputs:
action: Combine configuration
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: $(azureContainerRegistry)
dockerComposeFile: docker-compose.yml
additionalDockerComposeFiles: docker-compose.override.yml
projectName: $(Build.Repository.Name)
qualifyImageNames: true
outputDockerComposeFile: $(Build.StagingDirectory)/docker-compose.yml
Docker Compose 명령 실행
매개 변수 설명
dockerComposeFile(Docker Compose 파일) (필수) 사용할 기본 Docker Compose 파일의 경로입니다.
기본값: **/docker-compose.yml
additionalDockerComposeFiles
(추가 Docker Compose 파일) (선택 사항) 기본 Docker Compose 파일과 결합할 추가 Docker Compose 파일입니다. 상대 경로는 기본 Docker Compose 파일이 포함된 디렉터리를 기준으로 확인됩니다. 지정된 파일을 찾을 수 없으면 무시됩니다. 새 줄에 각 파일 경로를 지정합니다.
dockerComposeFileArgs
(환경 변수) (선택 사항) 명령 중에 설정할 환경 변수입니다. 새 줄에 각 name=value 쌍을 지정합니다.
projectName
(프로젝트 이름) (선택 사항) 이미지 및 컨테이너의 기본 이름 지정에 사용되는 프로젝트 이름입니다.
기본값: $(Build.Repository.Name)
qualifyImageNames
(이미지 이름 한정) (선택 사항) 달리 지정되지 않은 경우 Docker 레지스트리 서비스 연결의 호스트 이름을 사용하여 빌드된 서비스의 이미지 이름을 한정합니다.
기본값: true
action
(작업) (필수) Docker Compose 작업을 선택합니다.
기본값: Docker Compose 명령 실행
dockerComposeCommand
(명령) (필수) 인수를 사용하여 실행할 Docker Compose 명령입니다. 예를 들어 중지된 모든 서비스 컨테이너를 제거하는 rm입니다.
이 YAML 예제에서는 docker Compose 명령을 실행합니다.
YAML
복사
- task: DockerCompose@0
displayName: Run a Docker Compose command
inputs:
action: Run a Docker Compose command
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: $(azureContainerRegistry)
dockerComposeFile: docker-compose.yml
projectName: $(Build.Repository.Name)
qualifyImageNames: true
dockerComposeCommand: rm