image.png

CICD.yml 파일

CI/CD 파이프라인 흐름

Build 과정

  1. gradlew에 실행권한을 줘서 빌드를 하면 jar파일이 생성 된다. 그러기 위해선 JDK가 있어야하기 때문에 설치

  2. 도커허브를 설치하는 이유

  3. 도커를 빌드하기 위해서는 도커파일을 생성

image.png

프로젝트 제일 상단에 생성

# 베이스 이미지로 openjdk:17의 Alpine 버전 사용
FROM openjdk:17-alpine

# ARG 지시어를 사용하여 빌드 시 사용할 변수 정의
ARG JAR_FILE=build/libs/*.jar   # 빌드된 JAR 파일의 경로
ARG PROFILES                 # 프로파일을 위한 변수
ARG ENV                      # 서버 환경을 위한 변수# JAR 파일을 컨테이너의 app.jar로 복사
COPY ${JAR_FILE} app.jar

# 컨테이너 시작 시 실행할 명령어 지정
ENTRYPOINT [
  "java",                                    # Java 실행
  "-Dspring.profiles.active=${PROFILES}",    # 활성화할 Spring 프로파일 설정
  "-Dserver.env=${ENV}",                    # 서버 환경 변수 설정
  "-jar",                                    # JAR 파일 실행
  "app.jar"                                  # 실행할 JAR 파일
]
  1. ENTRYPOINT ["java", "-Dspring.profiles.active=${PROFILES}", "-Dserver.env=${ENV}", "-jar", "app.jar"] 값들을 종합하면 jar파일이 됨

image.png

  1. Dockerfile의 ARG PROFILES, ARG ENV과 아까 서버에 생성한 Docker-compose의 PROFILES,ENV 와 상호작용함

image.png

  1. Dockerfile의-Dspring.profiles.active=${PROFILES}, -Deserver.env=${ENV}는 application.yml파일과 상호 작용함