- depends_on, DB_HOST 기본값도 db로 갱신
- deploy: 서비스 이름 변경으로 남는 orphan 컨테이너 정리를 위해 --remove-orphans 추가
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- DB_DATA_DIR 기본값 /data/postgres -> ./data/postgres (다른 스택과 동일하게 프로젝트 폴더 하위에 생성)
- data/ gitignore 추가
- deploy: backend/frontend를 매 배포마다 force-recreate - DB 교체 시 스키마 미동기화, nginx 낡은 upstream 캐시 문제 방지
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- named volume 대신 호스트 경로 바인드 마운트 사용 (DB_DATA_DIR, 기본 /data/postgres)
- backend: DB 연결/동기화 실패 시 프로세스 종료 - restart: always가 DB 준비까지 재시도하도록 fail-fast 적용
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- 모든 서비스 ports -> expose로 변경 (외부 포트 노출 없음)
- frontend/backend를 공용 proxy 네트워크에 연결 - npm이 컨테이너 이름(report-frontend:80)으로 라우팅
- DB는 내부 app-network 전용 유지
- 미사용이 된 BACKEND_PORT/FRONTEND_PORT 변수 제거
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
npm(Nginx Proxy Manager)이 proxy 네트워크에서 report-frontend:80 으로 접근할 수 있도록 external 네트워크 추가 (adform/innertab과 동일 패턴). 도메인 접속 시 502 나던 문제 해결
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- backend가 mysql 초기화 완료(healthy) 후에 기동하도록 depends_on 조건 추가
- adminer: IPv6 비활성 호스트에서 리슨 실패하던 것을 0.0.0.0 리슨으로 수정,
포트를 127.0.0.1로 바인딩해 외부 노출 차단
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>