diff --git a/.gitlab-ci.yaml b/.gitlab-ci.yaml index c35131ed719e8b3fd1abe1e9c89d52e726ea1650..6d980230f418e2b71a7fbaa09f461184957378c6 100644 --- a/.gitlab-ci.yaml +++ b/.gitlab-ci.yaml @@ -1,40 +1,41 @@ -# GitLab Runner가 사용할 Docker 이미지 (Maven + JDK 포함) -image: maven:3.9-eclipse-temurin-17 - -services: - - docker:dind # Docker-in-Docker 서비스 사용 - -variables: - DOCKER_DRIVER: overlay2 - MAVEN_CLI_OPTS: "-B -Dmaven.test.skip=true" - stages: - build - - dockerize + - deploy -# Step 1: Maven 빌드 +cache: + paths: + - .m2/repository + - target/ + +# 1️⃣ 빌드 단계: Maven + JDK 17 이미지 사용 build: + image: maven:3.9.6-eclipse-temurin-17 stage: build script: - - echo "✅ Maven 빌드 시작" - - mvn $MAVEN_CLI_OPTS clean package + - mvn clean package -DskipTests artifacts: paths: - target/*.jar + - Dockerfile + only: + - main -# Step 2: Docker 이미지 빌드 + Docker Hub 푸시 -dockerize: - stage: dockerize +# 2️⃣ 배포 단계: Docker로 이미지 빌드 & DockerHub에 푸시 +deploy: image: docker:latest services: - docker:dind + stage: deploy + when: manual + variables: + DOCKER_HOST: tcp://docker:2375 + DOCKER_TLS_CERTDIR: "" before_script: - - echo "🔐 Docker Hub 로그인" - - docker login -u "$DOCKER_HUB_USERID" -p "$DOCKER_HUB_PASSWORD" + - echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USERID" --password-stdin script: - - echo "🐳 Docker 이미지 빌드 시작" - - docker build -t $DOCKER_HUB_USERID/myspringweb . - - docker push $DOCKER_HUB_USERID/myspringweb + - docker build -t myspringweb . + - docker tag myspringweb "$DOCKER_HUB_USERID/myspringweb" + - docker push "$DOCKER_HUB_USERID/myspringweb" after_script: - docker logout only: