diff --git a/scripts/nas-deploy-83a6c882.sh b/scripts/nas-deploy.sh similarity index 56% rename from scripts/nas-deploy-83a6c882.sh rename to scripts/nas-deploy.sh index 98dc7ca..3bf1265 100644 --- a/scripts/nas-deploy-83a6c882.sh +++ b/scripts/nas-deploy.sh @@ -1,31 +1,24 @@ #!/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 +# Forgejo master를 NAS(vignette-prod)에 배포한다. API 이미지만 교체하고 engine·web은 유지한다. +# engine 코드·공통 requirements·apps/api/Dockerfile이 바뀐 배포에서는 이 스크립트를 그대로 쓰지 말고 +# docs/ops/deployment-pipeline.md §5의 변경 범위 판정을 먼저 따른다. +# 실행(NAS에서): curl -fsSLo /tmp/d 192.168.0.38:3000/yunchan/vignette/raw/branch/master/scripts/nas-deploy.sh && sh /tmp/d set -eu - -SHA=83a6c882 cd /volume1/docker/vignette-prod -echo "[0/5] 백업 (DB dump + env.nas)" +echo "[1/5] Forgejo master 클론" +rm -rf src-deploy +docker run --rm -v "$PWD:/work" alpine/git clone --depth 1 --branch master \ + http://192.168.0.38:3000/yunchan/vignette.git /work/src-deploy +SHA=$(docker run --rm -v "$PWD:/work" alpine/git -C /work/src-deploy rev-parse --short HEAD) +echo "cloned=$SHA" + +echo "[2/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}" +cd src-deploy docker build -f apps/api/Dockerfile -t "vignette-nas-api:${SHA}" . cd ..