#!/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