NAS API 전용 배포 스크립트 추가
This commit is contained in:
parent
83a6c8820c
commit
72b386cbd4
1 changed files with 43 additions and 0 deletions
43
scripts/nas-deploy-83a6c882.sh
Normal file
43
scripts/nas-deploy-83a6c882.sh
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#!/bin/sh
|
||||
# 2026-09-23 83a6c882 배포 — API 이미지만 교체한다.
|
||||
# 변경 범위: apps/api/app/services/provider_oauth.py (Google OAuth 스코프 형식).
|
||||
# engine·web 코드와 requirements·apps/api/Dockerfile은 바뀌지 않았으므로 engine은 재생성하지 않는다.
|
||||
# 실행: ssh yunchan@192.168.0.38 'sh -s' < scripts/nas-deploy-83a6c882.sh
|
||||
set -eu
|
||||
|
||||
SHA=83a6c882
|
||||
cd /volume1/docker/vignette-prod
|
||||
|
||||
echo "[0/5] 백업 (DB dump + env.nas)"
|
||||
docker exec vignette-prod-db-1 pg_dump -U vignette_owner -d vignette -Fc > "backups/pre-deploy-${SHA}.dump"
|
||||
cp private/env.nas "private/env.nas.before-deploy-${SHA}"
|
||||
|
||||
echo "[1/5] Forgejo master 클론"
|
||||
rm -rf "src-${SHA}"
|
||||
docker run --rm -v "$PWD:/work" alpine/git clone --depth 1 --branch master \
|
||||
http://192.168.0.38:3000/yunchan/vignette.git "/work/src-${SHA}"
|
||||
|
||||
echo "[2/5] 클론한 커밋이 ${SHA}인지 검증"
|
||||
CLONED=$(docker run --rm -v "$PWD:/work" alpine/git -C "/work/src-${SHA}" rev-parse HEAD)
|
||||
case "$CLONED" in
|
||||
"$SHA"*) echo "cloned=$CLONED" ;;
|
||||
*) echo "SHA_MISMATCH: cloned=$CLONED expected=${SHA}" >&2; exit 1 ;;
|
||||
esac
|
||||
|
||||
echo "[3/5] API 이미지 빌드 (수 분 소요)"
|
||||
cd "src-${SHA}"
|
||||
docker build -f apps/api/Dockerfile -t "vignette-nas-api:${SHA}" .
|
||||
cd ..
|
||||
|
||||
echo "[4/5] 이미지 참조 갱신 + compose 설정 검증"
|
||||
sed -i "s#^VIGNETTE_NAS_API_IMAGE=.*#VIGNETTE_NAS_API_IMAGE=vignette-nas-api:${SHA}#" private/env.nas
|
||||
grep VIGNETTE_NAS_API_IMAGE private/env.nas
|
||||
docker compose -f docker-compose.nas.yml --env-file private/env.nas config --quiet
|
||||
|
||||
echo "[5/5] api 컨테이너만 교체 (engine 유지)"
|
||||
docker compose -f docker-compose.nas.yml --env-file private/env.nas up -d --no-deps api
|
||||
sleep 60
|
||||
docker compose -f docker-compose.nas.yml --env-file private/env.nas ps api
|
||||
curl -s http://127.0.0.1:18080/health
|
||||
echo ""
|
||||
echo "DEPLOY_OK"
|
||||
Loading…
Add table
Add a link
Reference in a new issue