서버 배포 flow 만들기
| topics | 800-프로젝트 400-인프라 & 아키텍처 |
| tags | #github-actions #docker #cicd |
서버 배포 flow 만들기
Github Actions를 통한 자동 배포 방법을 고민하고 있다.
방법 1: Docker 이미지 빌드 후 배포
- PR/메인 브랜치에 푸시 → Actions가 Docker 이미지 빌드
- GHCR(또는 Docker Hub)에 이미지 푸시
- Actions가 서버로 SSH 접속해
docker compose pull && docker compose up -d실행
장점
- 이미지 버전 관리가 명확하다
- 롤백이 쉽다 (이전 이미지로 재배포)
- 빌드 환경이 일관적이다
단점
- Registry 용량 관리 필요
- 이미지 pull 시간 소요
방법 2: 소스 코드 복사 후 서버에서 빌드
- Actions가 소스 코드를 서버에 rsync/scp로 복사
- 서버에서
docker compose build && up -d또는npm run build등 로컬 빌드
장점
- Registry 불필요
- 간단한 구성
단점
- 서버 리소스 사용 (빌드 부하)
- 빌드 환경 의존성 관리 어려움
- 빌드 실패 시 복구 어려움
결론
본인의 경우, 방법 1을 선택했다. 미니 서버 리소스가 제한적이고, 버전 관리와 롤백이 중요하다고 판단했기 때문이다.