e4b64af3da
Deploy momo-erp / deploy (push) Failing after 16m1s
- src/app/api/deploy/webhook/route.ts:
+ DEPLOY_SCRIPT 기본값 → /deploy/source/scripts/deploy.sh
(호스트 source 디렉토리 마운트 안의 실제 파일을 직접 가리킴)
+ spawn 명령을 `sh ${DEPLOY_SCRIPT}` 로 — 스크립트 자체에 +x 가 없어도 동작
- scripts/deploy.sh:
+ git pull 직후 `git rev-parse HEAD > public/build-sha.txt`
(옛 deploy.yml SSH 단계에서 박던 SHA 마커를 동일 위치에서 생성)
이제 webhook 호출 한 번으로:
git pull → build-sha 갱신 → docker compose up --build → traefik swap
까지 완결되어 외부 헬스체크가 정확히 새 SHA 를 검출.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
28 lines
1019 B
Bash
28 lines
1019 B
Bash
#!/bin/sh
|
|
# 운영 서버에서 실행되는 배포 스크립트
|
|
# webhook 이 이걸 spawn 함. 또는 cron/수동 실행 가능
|
|
# 호스트에 미리 배치: cp scripts/deploy.sh /deploy/deploy.sh && chmod +x
|
|
|
|
set -e
|
|
cd /deploy/source 2>/dev/null || cd "$HOME/momo-erp/source"
|
|
|
|
echo "[$(date)] git fetch + reset --hard origin/main"
|
|
git fetch origin
|
|
git reset --hard origin/main
|
|
|
|
# build-sha.txt — 헬스체크가 이 값으로 운영 반영 SHA 검증
|
|
git rev-parse HEAD > public/build-sha.txt
|
|
echo "[$(date)] ▶ 배포 대상 SHA: $(cat public/build-sha.txt)"
|
|
|
|
# 업로드 저장은 named volume(momo_data_storage)으로 이전됨 — 호스트 디렉토리 prep 불필요
|
|
echo "[$(date)] docker compose up --build"
|
|
docker compose -f docker-compose.prod.yml up -d --build
|
|
|
|
echo "[$(date)] migrate:momo (idempotent)"
|
|
docker compose -f docker-compose.prod.yml exec -T momo-erp npm run migrate:momo || true
|
|
|
|
echo "[$(date)] docker ps"
|
|
docker compose -f docker-compose.prod.yml ps
|
|
|
|
echo "[$(date)] ✔ 배포 완료"
|