67 lines
2.0 KiB
Bash
Executable File
67 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# ============================================
|
|
# 部署脚本 — 在 dev 服务器(192.168.100.128)上执行
|
|
# 用法:
|
|
# 本地执行: ./deploy/deploy-dev.sh
|
|
# 会自动 SSH 到 dev 服务器完成部署
|
|
# ============================================
|
|
|
|
DEV_HOST="192.168.100.128"
|
|
DEV_USER="root"
|
|
DEPLOY_DIR="/opt/sundynix"
|
|
|
|
HARBOR="192.168.100.140"
|
|
|
|
# 本地项目根目录
|
|
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
CONFIG_DIR="${ROOT_DIR}/deploy/dev"
|
|
|
|
echo "=========================================="
|
|
echo " Sundynix Dev 环境部署"
|
|
echo " 目标: ${DEV_USER}@${DEV_HOST}"
|
|
echo "=========================================="
|
|
|
|
# 1. 在 dev 服务器上创建目录结构
|
|
echo "[1/4] 创建远程目录..."
|
|
ssh ${DEV_USER}@${DEV_HOST} "mkdir -p ${DEPLOY_DIR}/config"
|
|
|
|
# 2. 同步配置文件到 dev 服务器
|
|
echo "[2/4] 同步配置文件..."
|
|
scp ${CONFIG_DIR}/system-rpc.yaml ${DEV_USER}@${DEV_HOST}:${DEPLOY_DIR}/config/
|
|
scp ${CONFIG_DIR}/auth-api.yaml ${DEV_USER}@${DEV_HOST}:${DEPLOY_DIR}/config/
|
|
scp ${CONFIG_DIR}/system-api.yaml ${DEV_USER}@${DEV_HOST}:${DEPLOY_DIR}/config/
|
|
scp ${CONFIG_DIR}/gateway.yaml ${DEV_USER}@${DEV_HOST}:${DEPLOY_DIR}/config/
|
|
scp ${CONFIG_DIR}/docker-compose.yml ${DEV_USER}@${DEV_HOST}:${DEPLOY_DIR}/
|
|
|
|
# 3. SSH 到 dev 服务器执行部署
|
|
echo "[3/4] 拉取镜像并启动服务..."
|
|
ssh ${DEV_USER}@${DEV_HOST} << 'REMOTE_SCRIPT'
|
|
set -e
|
|
cd /opt/sundynix
|
|
|
|
# 停止旧容器并用已加载的镜像启动
|
|
docker compose down --remove-orphans 2>/dev/null || true
|
|
docker compose up -d
|
|
|
|
# 等待 3 秒后检查状态
|
|
sleep 3
|
|
echo ""
|
|
echo "========== 容器状态 =========="
|
|
docker compose ps
|
|
echo ""
|
|
echo "========== 最近日志 =========="
|
|
docker compose logs --tail=10
|
|
REMOTE_SCRIPT
|
|
|
|
echo ""
|
|
echo "[4/4] 部署完成 ✅"
|
|
echo ""
|
|
echo " 网关地址: http://${DEV_HOST}:8888"
|
|
echo " auth-api: http://${DEV_HOST}:9001"
|
|
echo " system-api: http://${DEV_HOST}:9003"
|
|
echo " system-rpc: ${DEV_HOST}:9103"
|
|
echo ""
|
|
echo " 验证: curl http://${DEV_HOST}:8888/api/auth/captcha"
|