docker
This commit is contained in:
38
shp-exporter/Dockerfile
Normal file
38
shp-exporter/Dockerfile
Normal file
@@ -0,0 +1,38 @@
|
||||
# ---- 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"]
|
||||
Reference in New Issue
Block a user