2.6 KiB
2.6 KiB
Docker 빌드 및 실행 가이드
추가된 파일
| 파일 | 설명 |
|---|---|
Dockerfile |
멀티스테이지 빌드 정의 |
.dockerignore |
Docker 빌드 컨텍스트 제외 목록 |
Dockerfile 구조
Stage 1 — Builder (eclipse-temurin:21-jdk-jammy)
- Gradle wrapper 및
build.gradle복사 → 의존성 레이어 캐싱 - 소스 코드 복사 후
./gradlew clean bootJar -x test실행 - 출력:
build/libs/shp-exporter-v2.jar
Stage 2 — Runtime (eclipse-temurin:21-jre-jammy)
- JDK 없이 JRE만 포함 → 이미지 크기 최소화
- 출력 디렉토리
/data/model_output/export사전 생성 - JVM 옵션 포함 (
-Xmx4g, G1GC 튜닝 등)
빌드
docker build -t shp-exporter .
실행
Spring Batch 모드 (권장)
docker run --rm \
-v /data/model_output/export:/data/model_output/export \
-e GEOSERVER_USERNAME=admin \
-e GEOSERVER_PASSWORD=geoserver \
shp-exporter \
--batch \
--converter.batch-ids[0]=252
GeoServer 등록 포함
docker run --rm \
-v /data/model_output/export:/data/model_output/export \
-e GEOSERVER_USERNAME=admin \
-e GEOSERVER_PASSWORD=geoserver \
shp-exporter \
--batch \
--geoserver.enabled=true \
--converter.inference-id=D5E46F60FC40B1A8BE0CD1F3547AA6 \
--converter.batch-ids[0]=252 \
--converter.batch-ids[1]=253
Shapefile 업로드 모드
docker run --rm \
-v /data/model_output/export:/data/model_output/export \
-e GEOSERVER_USERNAME=admin \
-e GEOSERVER_PASSWORD=geoserver \
shp-exporter \
--upload-shp /data/model_output/export/path/to/file.shp \
--layer layer_name
DB 주소 오버라이드
application-prod.yml의 DB 호스트(kamco-cd-postgis)가 네트워크 환경과 다를 경우:
docker run --rm \
--network your-network \
-v /data/model_output/export:/data/model_output/export \
shp-exporter \
--batch \
--spring.datasource.url=jdbc:postgresql://HOST:5432/kamco_cds \
--converter.batch-ids[0]=252
주의사항
- 볼륨 마운트 필수: 출력 파일(
/data/model_output/export)은 호스트 볼륨으로 마운트하지 않으면 컨테이너 종료 시 소실됨 - 네트워크: DB 호스트명
kamco-cd-postgis가 컨테이너에서 resolve되어야 함 (--network또는--add-host활용) - GeoServer 크리덴셜:
GEOSERVER_USERNAME/GEOSERVER_PASSWORD환경변수로 주입 (application-prod.yml에 하드코딩된 값은 덮어씌워짐) .dockerignore는.gitignore에 등록되어 있어 git에 커밋되지 않음 — 필요 시.gitignore에서 해당 라인 제거