Compare commits

..

2 Commits

Author SHA1 Message Date
ttipo fdf6544bf1 Merge branch 'chore/docker-log-rotation' 2026-08-06 19:45:00 +09:00
ttipo 18ffef8ac8 chore: 컨테이너 로그 로테이션 설정 추가
json-file 드라이버 기본값(무제한)으로 로그가 호스트 디스크를 채워
PostgreSQL 이 could not write init file 로 실패하는 문제를 방지한다.
전 서비스에 서비스당 30MB(10MB x 3) 상한을 적용.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 19:44:54 +09:00
+15
View File
@@ -1,3 +1,13 @@
# 컨테이너 로그 로테이션 공통 설정.
# 기본값(json-file, 무제한)으로 두면 로그가 호스트 디스크를 계속 먹다가
# 결국 100% 를 채워 PostgreSQL 이 "could not write init file" 로 죽는다.
# 서비스당 최대 30MB(10MB x 3) 로 상한을 건다.
x-logging: &default-logging
driver: json-file
options:
max-size: '10m'
max-file: '3'
services:
# ----------------------------------------
# 1. Frontend (Nginx 정적 호스팅)
@@ -19,6 +29,7 @@ services:
- "80"
environment:
- NODE_ENV=${APP_ENV}
logging: *default-logging
restart: unless-stopped
networks:
- app-network
@@ -83,6 +94,7 @@ services:
# 업무 첨부는 로컬 디스크에 저장된다. 볼륨이 없으면 재배포로 컨테이너가
# 교체될 때 파일이 모두 사라지고, DB 의 첨부 레코드만 남아 다운로드가 실패한다.
- ${UPLOAD_DATA_DIR}:/app/uploads
logging: *default-logging
restart: unless-stopped
networks:
- app-network
@@ -120,6 +132,7 @@ services:
POSTGRES_DB: ${DB_NAME}
volumes:
- ${DB_DATA_DIR}:/var/lib/postgresql/data
logging: *default-logging
restart: always
networks:
- app-network
@@ -148,6 +161,7 @@ services:
- "6379"
volumes:
- ${REDIS_DATA_DIR}:/data
logging: *default-logging
restart: always
networks:
- app-network
@@ -191,6 +205,7 @@ services:
volumes:
# 클러스터링 시에는 redis 비밀번호가 담긴 사본을 마운트(DEPLOY.md 참고)
- ./livekit/livekit.prod.yaml:/etc/livekit/livekit.yaml:ro
logging: *default-logging
restart: unless-stopped
networks:
- app-network