From 7ba2a307b5ef26b8108e4f7741dbc6ce58c50114 Mon Sep 17 00:00:00 2001 From: Sangkwon Lee Date: Thu, 24 Apr 2025 04:54:35 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=EB=8F=84=EC=BB=A4=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20=EC=B5=9C=EC=A0=81=ED=99=94=EB=A1=9C=20?= =?UTF-8?q?=EB=B0=B0=ED=8F=AC=20=EC=8B=9C=EA=B0=84=20=EB=8B=A8=EC=B6=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 5 +++++ Dockerfile | 24 ++++++++++++++++++++---- 2 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..72f75212 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +.git +.gradle +build/ +**/*.log +README.md \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 3be79420..863c3e15 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,22 @@ -FROM openjdk:21 +# ---------- [1단계: 빌드 전용 스테이지] ---------- +FROM gradle:8.5-jdk21 AS builder +WORKDIR /app + +# 불필요한 파일은 제외하여 캐시 효율 증가 +COPY build.gradle settings.gradle ./ +COPY gradle ./gradle +RUN gradle dependencies --no-daemon || return 0 + +# 나머지 소스 복사 +COPY . . +RUN gradle clean build -x test --no-daemon -# /home/ubuntu/app +# ---------- [2단계: 실행 전용 스테이지] ---------- +FROM openjdk:21-slim WORKDIR /app -COPY *.jar app.jar -ENTRYPOINT ["java","-Dspring.profiles.active=prod","-jar","app.jar"] \ No newline at end of file + +# 빌드된 jar만 복사 → 이미지 최소화 +COPY --from=builder /app/build/libs/*.jar app.jar + +# 실행 +ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-jar", "app.jar"]