39 lines
1.1 KiB
Bash
39 lines
1.1 KiB
Bash
#!/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
|