From b124e60c88172fb639a6a47354e16c1603b4277f Mon Sep 17 00:00:00 2001 From: sb Date: Sat, 11 Jul 2026 16:27:16 +0900 Subject: [PATCH] =?UTF-8?q?build:=20Dockerfile=20+=20.dockerignore=20(?= =?UTF-8?q?=EC=BB=A8=ED=85=8C=EC=9D=B4=EB=84=88=20=EB=B0=B0=ED=8F=AC?= =?UTF-8?q?=EC=9A=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 멀티스테이지(JDK 빌드→JRE 런타임), bootJar -x test 로 실행가능 jar 하나 생성. 프로파일/포트는 런타임 env(SPRING_PROFILES_ACTIVE)로 결정 → dev/prod 이미지 공용. Co-Authored-By: Claude Opus 4.8 (1M context) --- .dockerignore | 11 +++++++++++ Dockerfile | 13 +++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b1f6522 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +# 빌드 컨텍스트에서 제외 (빌드 속도 + 시크릿/산출물 유출 방지) +.git/ +.gradle/ +build/ +.idea/ +.vscode/ +*.md +.env +.env.* +dump.rdb +*.rdb \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4f25475 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM eclipse-temurin:17-jdk-alpine AS builder +WORKDIR /app +COPY gradlew . +COPY gradle gradle +COPY build.gradle . +COPY settings.gradle . +COPY src src +RUN chmod +x gradlew && ./gradlew bootJar -x test + +FROM eclipse-temurin:17-jre-alpine +WORKDIR /app +COPY --from=builder /app/build/libs/*.jar app.jar +ENTRYPOINT ["java", "-jar", "app.jar"] \ No newline at end of file