deploy.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/bash
  2. # LangGraph 部署脚本
  3. # 用法: ./deploy.sh
  4. #
  5. # 说明:
  6. # cfc-langgraph 以 Docker 镜像方式部署 —— Dockerfile 在构建时把 app/ 等代码 COPY 进镜像,
  7. # 因此代码变更必须「重新 build 镜像 + 重建容器」才能生效;仅 restart 不会加载新代码。
  8. # 本脚本在服务器上就地执行(服务地址 https://ai.etotem.com.cn,容器端口 9000)。
  9. #
  10. # 历史:旧版本 rsync 到 /opt/sc-data/cfc/cfc-langgraph 后执行 docker-compose restart,
  11. # 该路径已不存在,且 restart 无法更新镜像,故重写为就地 build + up。
  12. set -e
  13. SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
  14. cd "$SCRIPT_DIR"
  15. echo "=== LangGraph Deploy ==="
  16. echo "目录: $SCRIPT_DIR"
  17. echo "[1/3] 构建镜像 (langgraph-svc)..."
  18. docker compose build langgraph-svc
  19. echo "[2/3] 重建并启动服务..."
  20. docker compose up -d langgraph-svc
  21. echo "[3/3] 健康检查..."
  22. ok=0
  23. for i in $(seq 1 30); do
  24. if curl -sf "https://ai.etotem.com.cn/health" > /dev/null 2>&1; then
  25. ok=1
  26. break
  27. fi
  28. echo " 等待服务就绪 ($i/30)..."
  29. sleep 5
  30. done
  31. if [ "$ok" = "1" ]; then
  32. echo "✅ 部署成功!服务地址: https://ai.etotem.com.cn"
  33. curl -s "https://ai.etotem.com.cn/api/v1/health" | python3 -m json.tool 2>/dev/null || true
  34. else
  35. echo "❌ 健康检查失败,请查看日志: docker compose -f ${SCRIPT_DIR}/docker-compose.yml logs langgraph-svc --tail=50"
  36. exit 1
  37. fi