docs: Add staging deployment warning to prevent volume mount errors
- Add rule #5: Never use manual docker run for staging deployment - Document 2025-01-05 incident where wrong volume mount caused missing images - Add correct docker-compose commands for staging deployment 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
28
CLAUDE.md
28
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 ...
|
||||
```
|
||||
|
||||
## ✅ 배포 전 필수 검증 명령어
|
||||
|
||||
|
||||
Reference in New Issue
Block a user