#!/bin/bash # LangGraph 部署脚本 # 用法: ./deploy.sh # # 说明: # cfc-langgraph 以 Docker 镜像方式部署 —— Dockerfile 在构建时把 app/ 等代码 COPY 进镜像, # 因此代码变更必须「重新 build 镜像 + 重建容器」才能生效;仅 restart 不会加载新代码。 # 本脚本在服务器上就地执行(服务地址 https://ai.etotem.com.cn,容器端口 9000)。 # # 历史:旧版本 rsync 到 /opt/sc-data/cfc/cfc-langgraph 后执行 docker-compose restart, # 该路径已不存在,且 restart 无法更新镜像,故重写为就地 build + up。 set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" cd "$SCRIPT_DIR" echo "=== LangGraph Deploy ===" echo "目录: $SCRIPT_DIR" echo "[1/3] 构建镜像 (langgraph-svc)..." docker compose build langgraph-svc echo "[2/3] 重建并启动服务..." docker compose up -d langgraph-svc echo "[3/3] 健康检查..." ok=0 for i in $(seq 1 30); do if curl -sf "https://ai.etotem.com.cn/health" > /dev/null 2>&1; then ok=1 break fi echo " 等待服务就绪 ($i/30)..." sleep 5 done if [ "$ok" = "1" ]; 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 "❌ 健康检查失败,请查看日志: docker compose -f ${SCRIPT_DIR}/docker-compose.yml logs langgraph-svc --tail=50" exit 1 fi