.gitlab-ci.yml
파일에 Docker 이미지 빌드 단계 추가다음을 수행하여 .gitlab-ci.yml
파일에 package
단계 및 docker-build
Job을 추가합니다.
GitLab UI의 Repository 파일 목록에서 .gitlab-ci.yml
을 선택합니다.
Edit 버튼을 클릭합니다.
Edit file 페이지에서 아래 항목을 수정하거나 추가합니다.
stages
에 - package
을 추가maven-build
Job의 script
을 수정하고 artifacts
을 추가docker-build
Job 추가수정하면 아래와 같습니다.
variables:
MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
image: maven:3.6.3-openjdk-11
cache:
paths:
- .m2/repository
stages:
- build
- test
- package
maven-build:
stage: build
script: "mvn $MAVEN_CLI_OPTS clean package -DskipTests"
artifacts:
paths:
- target/*.jar
maven-test:
stage: test
script: "mvn $MAVEN_CLI_OPTS test"
docker-build:
image: docker:latest
stage: package
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- docker pull $CI_REGISTRY_IMAGE:latest || true
- docker build --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE:latest .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
- docker push $CI_REGISTRY_IMAGE:latest
Commit message 필드에 커밋 메시지를 입력합니다. (예: Add 'docker-build' Job
)
Commit changes 버튼을 클릭합니다.