From 9421df2b9b464a3d443d80f72a4aeeebfe09fc1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dean=5B=EB=B0=B1=EB=B3=91=EB=82=A8=5D?= Date: Thu, 19 Feb 2026 22:17:55 +0900 Subject: [PATCH] dd --- Dockerfile-prod | 12 +++++++--- docker-compose-prod.yml | 31 ++++++++++++++++++++----- src/main/resources/application-prod.yml | 12 +++------- 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/Dockerfile-prod b/Dockerfile-prod index fdd5b00d..8583f81d 100644 --- a/Dockerfile-prod +++ b/Dockerfile-prod @@ -1,7 +1,12 @@ -# 1단계에서 만든 로컬 베이스 이미지를 사용 -FROM 127.0.0.1:18082/kamco-cd/base-java21-gdal:1.0 +# Stage 1: Build stage (gradle build는 Jenkins에서 이미 수행) +FROM eclipse-temurin:21-jre-jammy + +# GDAL 설치 +RUN apt-get update && apt-get install -y \ + gdal-bin \ + libgdal-dev \ + && rm -rf /var/lib/apt/lists/* -# 사용자 설정 (앱 별로 다를 수 있으므로 여기에 유지) ARG UID=1000 ARG GID=1000 @@ -18,6 +23,7 @@ COPY build/libs/ROOT.jar app.jar # 포트 노출 EXPOSE 8080 + # 애플리케이션 실행 # dev 프로파일로 실행 ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "app.jar"] diff --git a/docker-compose-prod.yml b/docker-compose-prod.yml index 8c586f5c..758d32a1 100644 --- a/docker-compose-prod.yml +++ b/docker-compose-prod.yml @@ -1,18 +1,37 @@ services: - kamco-changedetection-api: + nginx: + image: nginx:alpine + container_name: kamco-cd-api-nginx + ports: + - "12013:443" + volumes: + - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro + - ./nginx/conf.d:/etc/nginx/conf.d:ro + - /etc/ssl/certs/globalsign:/etc/ssl/certs/globalsign:ro + networks: + - kamco-cds + restart: unless-stopped + depends_on: + - kamco-cd-api + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost/health"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 10s + + kamco-cd-api: build: context: . dockerfile: Dockerfile-prod args: UID: 1000 # manager01 UID GID: 1000 # manager01 GID - image: kamco-changedetection-api:${IMAGE_TAG:-latest} - container_name: kamco-changedetection-api + image: kamco-cd-api:${IMAGE_TAG:-latest} + container_name: kamco-cd-api user: "1000:1000" - ports: - - "7100:8080" environment: - - SPRING_PROFILES_ACTIVE=dev + - SPRING_PROFILES_ACTIVE=prod - TZ=Asia/Seoul volumes: - /data:/kamco-nfs diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 5b8cd490..894a055b 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -16,13 +16,9 @@ spring: format_sql: true # ⚠️ 선택 - SQL 포맷팅 (가독성) jdbc: batch_size: 1000 # ✅ 추가 (JDBC batch) - open-in-view: false - mvc: - async: - request-timeout: 300s # 5분 (예: 30s, 120s, 10m 등도 가능) datasource: - url: jdbc:postgresql://127.0.0.1:15432/kamco_cds + url: jdbc:postgresql://kamco-cd-postgis:5432/kamco_cds #url: jdbc:postgresql://localhost:15432/kamco_cds username: kamco_cds password: kamco_cds_Q!W@E#R$ @@ -67,8 +63,8 @@ token: logging: level: root: INFO - org.springframework.web: DEBUG - org.springframework.security: DEBUG + org.springframework.web: INFO + org.springframework.security: INFO # 헬스체크 노이즈 핵심만 다운 org.springframework.security.web.FilterChainProxy: INFO @@ -103,8 +99,6 @@ file: pt-path: /kamco-nfs/ckpt/model/v6-cls-checkpoints/ pt-FileName: yolov8_6th-6m.pt - dataset-response: /kamco-nfs/dataset/response/ - inference: url: http://127.0.0.1:8000/jobs batch-url: http://127.0.0.1:8000/batches