38
deploy.sh
Normal file
38
deploy.sh
Normal file
@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# 一键上线脚本(在服务器上执行,或本地 SSH 调它)
|
||||
# 服务器目录约定(见 DEPLOY.md):
|
||||
# /opt/fashion/test -> 前端仓(本脚本所在)
|
||||
# /opt/fashion/admin/backend -> 后端仓
|
||||
#
|
||||
# 流程:拉代码 -> 起 db+backend -> 等后端健康 -> 构建前端(SSR 拉数据) -> 起前端
|
||||
set -euo pipefail
|
||||
|
||||
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$DIR"
|
||||
|
||||
echo "==> [1/5] 拉取最新代码"
|
||||
git pull --ff-only
|
||||
git -C ../admin/backend pull --ff-only || true
|
||||
|
||||
echo "==> [2/5] 启动 db + backend(供前端构建期 SSR 取数)"
|
||||
docker compose up -d db backend
|
||||
|
||||
echo "==> [3/5] 等待 backend :8090 健康"
|
||||
for i in $(seq 1 60); do
|
||||
if curl -fsS "http://localhost:8090/api/public/brands?size=1" >/dev/null 2>&1; then
|
||||
echo " backend 已就绪"
|
||||
break
|
||||
fi
|
||||
echo " 等待中... ($i/60)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
echo "==> [4/5] 构建前端镜像(API_SSR=http://localhost:8090,构建期网络=host)"
|
||||
docker compose build frontend
|
||||
|
||||
echo "==> [5/5] 启动前端"
|
||||
docker compose up -d frontend
|
||||
|
||||
echo "==> 部署完成,当前状态:"
|
||||
docker compose ps
|
||||
Reference in New Issue
Block a user