| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/bin/bash
- # LangGraph 部署脚本
- # 用法: ./deploy.sh [生产|测试]
- # 会将本地 cfc-langgraph/ 代码同步到远程服务器并重启服务
- #
- # 远程服务器: ai.etotem.com.cn (111.228.6.214)
- # 部署路径: /opt/sc-data/cfc/cfc-langgraph/
- set -e
- ENV="${1:-prod}"
- REMOTE_USER="root"
- REMOTE_HOST="111.228.6.214"
- REMOTE_PATH="/opt/sc-data/cfc/cfc-langgraph"
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
- echo "=== LangGraph Deploy ($ENV) ==="
- echo "本地: $SCRIPT_DIR"
- echo "远程: $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH"
- # 同步代码(排除虚拟环境和缓存)
- echo "[1/3] 同步代码..."
- rsync -av --delete \
- --exclude='.venv' \
- --exclude='__pycache__' \
- --exclude='*.pyc' \
- --exclude='.env' \
- --exclude='.env.production' \
- --exclude='data/' \
- --exclude='node_modules' \
- --exclude='.git/' \
- "$SCRIPT_DIR/" \
- "${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}/"
- # 重启服务
- echo "[2/3] 重启 LangGraph 服务..."
- ssh "${REMOTE_USER}@${REMOTE_HOST}" "
- cd ${REMOTE_PATH} && \
- docker-compose restart langgraph-svc && \
- sleep 3 && \
- docker-compose ps langgraph-svc
- "
- # 健康检查
- echo "[3/3] 健康检查..."
- sleep 5
- if curl -sf "https://ai.etotem.com.cn/health" > /dev/null; then
- echo "✅ 部署成功!服务地址: https://ai.etotem.com.cn"
- curl -s "https://ai.etotem.com.cn/api/v1/health" | python3 -m json.tool 2>/dev/null || true
- else
- echo "❌ 健康检查失败,请查看日志: ssh ${REMOTE_USER}@${REMOTE_HOST} 'docker-compose -f ${REMOTE_PATH}/docker-compose.yml logs langgraph-svc --tail=50'"
- exit 1
- fi
|