services: app: build: . image: orderlist-app:latest container_name: orderlist-app restart: unless-stopped env_file: - .env environment: # 컨테이너 내부에서 DB_HOST는 반드시 postgres-db 여야 합니다. DB_HOST: ${DB_HOST:-postgres-db} # NPM 리버스 프록시 뒤 서브경로 호스팅. APP_ROOT_PATH: ${APP_ROOT_PATH:-/orderlist} # ports 블록 의도적으로 없음. # 외부에는 NPM(Nginx Proxy Manager) 를 통해서만 노출되어야 한다. # 직접 호스트 포트로 노출하면 dbx.no1king.freeddns.org/orderlist/ 우회로 IP:PORT 접근이 가능해진다. networks: - postgres_net - web_net healthcheck: test: ["CMD", "curl", "-fsS", "http://localhost:8000/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) 또는 dbx-main nginx 가 속해 있는 외부 네트워크. # NPM이 orderlist-app 컨테이너에 도달할 수 있어야 한다. web_net: external: true name: ${WEB_NETWORK:-npm_default}