diff --git a/CLAUDE.md b/CLAUDE.md index b7f48bf..a49d880 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -89,6 +89,34 @@ ssh server3 "docker ps | grep nextcloud" 2. **DB_NAME 직접 타이핑 금지** - 반드시 `autonet` 복사/붙여넣기 3. **`.env` 파일 덮어쓰기 금지** - 서버의 기존 `.env` 보존 4. **`/home/damon/mongolcar/data/uploads` 사용 금지** - 비어있는 잘못된 경로 +5. **스테이징 배포 시 수동 `docker run` 금지** - 반드시 `docker compose` 사용! (아래 참고) + +### ⚠️ 스테이징 배포 주의사항 (2025-01-05 사고 사례) + +**문제**: 수동 `docker run`으로 스테이징 배포 시 볼륨 마운트 경로를 잘못 지정하여 이미지가 사라짐 + +**원인**: `docker-compose.staging.yml`은 production uploads를 마운트하지만, 수동 명령어에서 staging uploads를 마운트함 +```yaml +# docker-compose.staging.yml (올바른 설정) +volumes: + - /opt/autonet/production/backend/uploads:/app/uploads # production 폴더 공유! +``` + +**올바른 스테이징 배포 방법**: +```bash +# 반드시 docker-compose 사용! +ssh server2 "cd /opt/autonet/staging && docker compose -f docker-compose.staging.yml up -d --build" + +# 개별 서비스만 재시작 +ssh server2 "cd /opt/autonet/staging && docker compose -f docker-compose.staging.yml up -d --build backend-staging" +ssh server2 "cd /opt/autonet/staging && docker compose -f docker-compose.staging.yml up -d --build frontend-staging" +``` + +**절대 하지 말 것**: +```bash +# ❌ 이렇게 하면 안됨! 볼륨 경로가 docker-compose와 달라짐 +docker run -v /opt/autonet/staging/backend/uploads:/app/uploads ... +``` ## ✅ 배포 전 필수 검증 명령어