services:
  corm-app:
    build: .
    image: dbx-corm:latest
    container_name: dbx-corm
    restart: unless-stopped
    env_file:
      - .env
    environment:
      # NPM 리버스 프록시 뒤 서브경로 호스팅.
      APP_ROOT_PATH: ${APP_ROOT_PATH:-/corm}
    # 호스트 포트 바인딩 없음 — NPM(Nginx Proxy Manager) 를 통해서만 접근.
    expose:
      - "8002"
    volumes:
      # 민감 파일은 Git에 안 올리고 서버 호스트에서 직접 마운트
      - ./cafe24_tokens.json:/app/cafe24_tokens.json
      - ./manual-ordering.json:/app/manual-ordering.json
    networks:
      - postgres_net
      - web_net
    healthcheck:
      test: ["CMD", "curl", "-fsS", "http://localhost:8002/health/db"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 20s

networks:
  # 이미 운영 중인 postgres-db 컨테이너가 속해 있는 외부 네트워크.
  postgres_net:
    external: true
    name: ${POSTGRES_NETWORK:-postgres_default}
  # NPM(Nginx Proxy Manager) 가 속해 있는 외부 네트워크.
  # NPM 이 dbx-corm 컨테이너에 컨테이너 이름으로 도달 가능해야 한다.
  web_net:
    external: true
    name: ${WEB_NETWORK:-npm_default}
