39 lines
994 B
Docker
39 lines
994 B
Docker
# ---- Build Stage ----
|
|
FROM eclipse-temurin:21-jdk-jammy AS builder
|
|
|
|
WORKDIR /workspace
|
|
|
|
# Gradle wrapper 및 빌드 설정 복사 (캐시 레이어 최적화)
|
|
COPY gradlew settings.gradle build.gradle ./
|
|
COPY gradle ./gradle
|
|
|
|
# 의존성 다운로드 (소스 변경 시 재빌드 방지)
|
|
RUN chmod +x gradlew && ./gradlew dependencies --no-daemon -q || true
|
|
|
|
# 소스 복사 후 빌드 (테스트 제외)
|
|
COPY src ./src
|
|
RUN ./gradlew clean bootJar -x test --no-daemon -q
|
|
|
|
# ---- Runtime Stage ----
|
|
FROM eclipse-temurin:21-jre-jammy
|
|
|
|
WORKDIR /app
|
|
|
|
# 출력 디렉토리 생성
|
|
RUN mkdir -p /data/model_output/export
|
|
|
|
# JAR 복사
|
|
COPY --from=builder /workspace/build/libs/shp-exporter-v2.jar app.jar
|
|
|
|
# GeoServer 크리덴셜은 환경변수로 주입
|
|
ENV GEOSERVER_USERNAME=""
|
|
ENV GEOSERVER_PASSWORD=""
|
|
|
|
ENTRYPOINT ["java", \
|
|
"-Xmx4g", "-Xms512m", \
|
|
"-XX:+UseG1GC", \
|
|
"-XX:MaxGCPauseMillis=200", \
|
|
"-XX:G1HeapRegionSize=16m", \
|
|
"-XX:+ParallelRefProcEnabled", \
|
|
"-jar", "app.jar"]
|