# 배포 패턴 원칙 **작성일**: 2025-12-06 **목적**: 배포 프로세스 일관성 유지 --- ## 배포 패턴 구조 ### 자동 배포 패턴 ``` 로컬 개발 → Gitea 푸시 → Actions (51123) → SSH (51124) → git pull → docker 재시작 ``` **참고**: `AGENTS.md:83-85` ### 수동 배포 패턴 ``` 서버 접속 → git pull → docker compose down && docker compose up -d --build ``` **참고**: `AGENTS.md:32` --- ## 워크플로우 파일 구조 ### 위치 - 경로: `.gitea/workflows/*.yml` - 예시: `rb8001/.gitea/workflows/cicd.yml` ### 공통 패턴 1. SSH 키 설정 2. 서버 접속 3. git pull 4. docker 재시작 5. 헬스체크 **참고**: 각 서비스 `.gitea/workflows/` 디렉토리 --- ## 배포 검증 원칙 ### 필수 확인 - [ ] `docker ps`로 컨테이너 실행 확인 - [ ] 헬스체크 엔드포인트 응답 확인 - [ ] 로그 확인 **주의**: Actions 성공 메시지만 믿지 말고 실제 컨테이너 상태 확인 **참고**: `AGENTS.md:30-31` --- ## SSH Secrets 구조 | Secret 이름 | 설명 | 사용 위치 | |------------|------|-----------| | `SSH_PRIVATE_KEY_51124` | 51124 서버 SSH 키 | Gitea Actions | | `SSH_HOST_51124` | 51124 서버 IP | Gitea Actions | | `SSH_USER_51124` | SSH 사용자 | Gitea Actions | **참고**: `DOCS/journey/plans/251206_skill_calendar_자동배포_구성.md` --- ## 배포 패턴 모범 사례 ### DO - `set -e`로 에러 즉시 중단 - `.env` 파일 존재 확인 - 헬스체크 재시도 로직 ### DON'T - Actions 성공 메시지만 믿기 - 빌드 실패 시 로그 확인 생략 --- **업데이트**: 패턴 변경 시 즉시 반영