- 네이밍 컨벤션, 로깅 규칙, 상수 구조, 배포 패턴만 유지 - 자주 변하는 정보(포트, 엔드포인트, 환경변수 값)는 각 서비스 README 참조로 변경 - 항상성(book/)에 맞게 원칙/패턴 중심으로 정리
83 lines
1.6 KiB
Markdown
83 lines
1.6 KiB
Markdown
# 배포 패턴 원칙
|
|
|
|
**작성일**: 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 성공 메시지만 믿기
|
|
- 빌드 실패 시 로그 확인 생략
|
|
|
|
---
|
|
|
|
**업데이트**: 패턴 변경 시 즉시 반영
|
|
|