서버 배포 flow 만들기

topics 800-프로젝트 400-인프라 & 아키텍처
tags #github-actions #docker #cicd

서버 배포 flow 만들기

Github Actions를 통한 자동 배포 방법을 고민하고 있다.

방법 1: Docker 이미지 빌드 후 배포

  1. PR/메인 브랜치에 푸시 → Actions가 Docker 이미지 빌드
  2. GHCR(또는 Docker Hub)에 이미지 푸시
  3. Actions가 서버로 SSH 접속docker compose pull && docker compose up -d 실행

장점

  • 이미지 버전 관리가 명확하다
  • 롤백이 쉽다 (이전 이미지로 재배포)
  • 빌드 환경이 일관적이다

단점

  • Registry 용량 관리 필요
  • 이미지 pull 시간 소요

방법 2: 소스 코드 복사 후 서버에서 빌드

  1. Actions가 소스 코드를 서버에 rsync/scp로 복사
  2. 서버에서 docker compose build && up -d 또는 npm run build로컬 빌드

장점

  • Registry 불필요
  • 간단한 구성

단점

  • 서버 리소스 사용 (빌드 부하)
  • 빌드 환경 의존성 관리 어려움
  • 빌드 실패 시 복구 어려움

결론

본인의 경우, 방법 1을 선택했다. 미니 서버 리소스가 제한적이고, 버전 관리와 롤백이 중요하다고 판단했기 때문이다.

관련 문서