본문 바로가기

카테고리 없음

Gitlab에서 프로젝트 빌드 Docker hub에 배포

CI를 위한 .gitlab-ci.yml 파일 내용

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"
  CI_REGISTRY_IMAGE: "mjg7822/dreams"

image: maven:3.6.3-openjdk-11

cache:
  paths:
    - .m2/repository

stages:
  - build
  - test
  - package

maven-build:
  image: maven:3.6.3-openjdk-11
  stage: build
  only:
    - master
    - staging
    - main
  script: "./mvnw clean package"
#  script:
#    - mvn clean package -Dmaven.test.skip=true
  artifacts:
    paths:
      - target/*.jar

maven-test:
  stage: test
  script: "./mvnw test"

docker-build:
  image: docker:latest
  stage: package
  services:
    - docker:dind
  before_script:
    - docker login -u $DOCKER_ID -p $DOCKER_PWD
  script:
    - docker pull ${CI_REGISTRY_IMAGE}:latest #|| true
    - docker build --cache-from ${CI_REGISTRY_IMAGE}:latest --tag ${CI_REGISTRY_IMAGE}:234 --tag ${CI_REGISTRY_IMAGE}:latest .
    - docker push ${CI_REGISTRY_IMAGE}:234
    - docker push ${CI_REGISTRY_IMAGE}:latest