Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/production-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,13 @@ jobs:
DB_URL: ${{ secrets.DB_URL }}
DB_USERNAME: ${{ secrets.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
GRAFANA_PASSWORD: ${{ secrets.GRAFANA_PASSWORD }}
with:
host: ${{ secrets.SSH_HOST_02 }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script_stop: true
envs: NLB_ID,ACCESS_TOKEN_SECRET_KEY,REFRESH_TOKEN_SECRET_KEY,DB_URL,DB_USERNAME,DB_PASSWORD
envs: NLB_ID,ACCESS_TOKEN_SECRET_KEY,REFRESH_TOKEN_SECRET_KEY,DB_URL,DB_USERNAME,DB_PASSWORD,GRAFANA_PASSWORD
script: |
cd ~/snackgame-server/repo
git fetch origin main
Expand All @@ -89,12 +90,13 @@ jobs:
DB_URL: ${{ secrets.DB_URL }}
DB_USERNAME: ${{ secrets.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
GRAFANA_PASSWORD: ${{ secrets.GRAFANA_PASSWORD }}
with:
host: ${{ secrets.SSH_HOST_01 }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script_stop: true
envs: NLB_ID,ACCESS_TOKEN_SECRET_KEY,REFRESH_TOKEN_SECRET_KEY,DB_URL,DB_USERNAME,DB_PASSWORD
envs: NLB_ID,ACCESS_TOKEN_SECRET_KEY,REFRESH_TOKEN_SECRET_KEY,DB_URL,DB_USERNAME,DB_PASSWORD,GRAFANA_PASSWORD
script: |
cd ~/snackgame-server/repo
git fetch origin main
Expand Down
4 changes: 2 additions & 2 deletions scripts/deploy-rolling.sh
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ wait_healthy() {
rollback() {
echo "[롤백] 이전 컨테이너로 복구 중..."
cd "$COMPOSE_DIR"
docker compose up -d
docker compose up -d snackgame-server
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

현재의 rollback 방식은 실제 이전 이미지 버전으로의 복구를 수행하지 못하는 한계가 있습니다. 105번 라인에서 docker compose pull이 이미 수행되었기 때문에, 여기서 docker compose up을 다시 실행하더라도 로컬에 받아진 최신(문제가 발생한) 이미지를 그대로 사용하게 됩니다. 진정한 롤백을 위해서는 배포 전의 이미지 ID나 태그를 저장해두었다가 복구 시 해당 버전을 명시하여 실행하는 로직이 필요합니다. 또한, 배포 시와 마찬가지로 --no-deps 옵션을 추가하여 의도치 않은 서비스 재시작을 방지하는 것이 좋습니다.

Suggested change
docker compose up -d snackgame-server
docker compose up -d --no-deps snackgame-server

set_drain false
echo "[롤백] 완료"
exit 1
Expand All @@ -106,7 +106,7 @@ docker compose pull


echo "[배포] 컨테이너 교체 중..."
docker compose up -d || rollback
docker compose up -d snackgame-server || rollback
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

PR 제목에 "Grafana Env 추가"가 언급되어 있으나, docker compose up 명령에 snackgame-server 서비스만 명시되어 있어 새롭게 추가된 Grafana 서비스가 시작되거나 업데이트되지 않을 수 있습니다. Grafana도 이 배포 프로세스에서 함께 관리되어야 한다면 서비스명을 생략하거나 Grafana 서비스를 명시적으로 포함하는 것을 검토해 주세요. 또한, scripts/deploy-dev.sh와 일관성을 유지하고 다른 서비스에 미치는 영향을 최소화하기 위해 --no-deps 옵션 사용을 권장하며, 105번 라인의 pull 명령도 특정 서비스만 대상으로 하도록 수정하는 것이 효율적입니다.

Suggested change
docker compose up -d snackgame-server || rollback
docker compose up -d --no-deps snackgame-server || rollback



wait_healthy || rollback
Expand Down
Loading