diff --git a/Dockerfile b/Dockerfile index 5dce274b..3e8fe414 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,17 +4,21 @@ ARG MODULE=apis WORKDIR /app # 의존성 캐싱 최적화를 위한 단계별 복사 -# 1. 의존성 관련 파일만 먼저 복사 -COPY build.gradle settings.gradle ./ -COPY ${MODULE}/build.gradle ./${MODULE}/ +# 1. Gradle Wrapper와 의존성 관련 파일만 먼저 복사 +COPY build.gradle.kts settings.gradle.kts gradlew gradlew.bat ./ +COPY gradle/wrapper/ ./gradle/wrapper/ +COPY ${MODULE}/build.gradle.kts ./${MODULE}/ -# 2. 소스코드 없이 의존성만 다운로드 +# 2. Gradle Wrapper 실행 권한 부여 +RUN chmod +x gradlew + +# 3. 소스코드 없이 의존성만 다운로드 RUN ./gradlew :${MODULE}:dependencies --no-daemon -# 3. 소스코드 전체 복사 +# 4. 소스코드 전체 복사 COPY . . -# 4. 실제 애플리케이션 빌드 +# 5. 실제 애플리케이션 빌드 RUN ./gradlew :${MODULE}:bootJar --parallel --no-daemon # Run stage diff --git a/Dockerfile-dev b/Dockerfile-dev index 862165bc..3e8fe414 100644 --- a/Dockerfile-dev +++ b/Dockerfile-dev @@ -4,17 +4,21 @@ ARG MODULE=apis WORKDIR /app # 의존성 캐싱 최적화를 위한 단계별 복사 -# 1. 의존성 관련 파일만 먼저 복사 -COPY build.gradle settings.gradle ./ -COPY ${MODULE}/build.gradle ./${MODULE}/ +# 1. Gradle Wrapper와 의존성 관련 파일만 먼저 복사 +COPY build.gradle.kts settings.gradle.kts gradlew gradlew.bat ./ +COPY gradle/wrapper/ ./gradle/wrapper/ +COPY ${MODULE}/build.gradle.kts ./${MODULE}/ -# 2. 소스코드 없이 의존성만 다운로드 +# 2. Gradle Wrapper 실행 권한 부여 +RUN chmod +x gradlew + +# 3. 소스코드 없이 의존성만 다운로드 RUN ./gradlew :${MODULE}:dependencies --no-daemon -# 3. 소스코드 전체 복사 +# 4. 소스코드 전체 복사 COPY . . -# 4. 실제 애플리케이션 빌드 +# 5. 실제 애플리케이션 빌드 RUN ./gradlew :${MODULE}:bootJar --parallel --no-daemon # Run stage @@ -29,6 +33,6 @@ COPY --from=build /app/${MODULE}/build/libs/${MODULE}-*.jar app.jar COPY --from=build /app/secret ./secret/ # JVM 실행 설정 -# Xms512m: 초기 힙 메모리 512MB -# Xmx1g: 최대 힙 메모리 1GB +# - Xms512m: 초기 힙 메모리 512MB +# - Xmx1g: 최대 힙 메모리 1GB ENTRYPOINT ["java", "-Xms512m", "-Xmx1g", "-jar", "app.jar"]