Skip to content

Commit 2ddc01b

Browse files
✨ feat : Layered JAR Dockerfile 작성
1 parent 7f64017 commit 2ddc01b

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

Dockerfile

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,36 @@
11
# builder image
22
FROM amazoncorretto:17-al2-jdk AS builder
33

4+
# 작업 디렉토리 생성
45
RUN mkdir /kafka-user
56
WORKDIR /kafka-user
67

8+
# 소스 코드 복사
79
COPY . .
810

11+
# Gradle 실행 권한 추가
912
RUN chmod +x gradlew
10-
RUN ./gradlew clean bootJar
13+
14+
# Layered JAR 생성 및 레이어 추출
15+
RUN ./gradlew clean bootJar && \
16+
java -Djarmode=layertools -jar build/libs/kafka-user-*.jar extract
1117

1218
# runtime image
1319
FROM amazoncorretto:17.0.12-al2
1420

21+
# 환경 변수 설정
1522
ENV TZ=Asia/Seoul
1623
ENV PROFILE=${PROFILE}
1724

25+
# 작업 디렉토리 생성
1826
RUN mkdir /kafka-user
1927
WORKDIR /kafka-user
2028

21-
COPY --from=builder /kafka-user/build/libs/kafka-user-* /kafka-user/app.jar
29+
# 레이어별로 파일 복사
30+
COPY --from=builder /kafka-user/dependencies/ ./dependencies/
31+
COPY --from=builder /kafka-user/spring-boot-loader/ ./spring-boot-loader/
32+
COPY --from=builder /kafka-user/snapshot-dependencies/ ./snapshot-dependencies/
33+
COPY --from=builder /kafka-user/application/ ./application/
2234

23-
CMD ["sh", "-c", " \
24-
java -Dspring.profiles.active=${PROFILE} \
25-
-jar /kafka-user/app.jar"]
35+
# 애플리케이션 실행
36+
CMD ["java", "-Dspring.profiles.active=${PROFILE}", "-Duser.timezone=Asia/Seoul", "org.springframework.boot.loader.JarLauncher"]

0 commit comments

Comments
 (0)