Skip to content

SpringBoot集成DS调用MCP实现-项目部署

本地部署

待后续跟进一下

服务器部署

后端部署

  • 打包 jar 包并复制到 docker/app/ 对应目录中
  • start.sh 脚本按顺序先启动 mcp-server 再启动 mcp-client-ws
    • 相关配置先修改好
    • 打包完成后,将这个文件夹复制到服务器

启动命令

bash
cd docker
docker-compose up -d mcp-server
docker logs -f mcp-server

#记得加一下执行权限
chmod +x start.sh

Fork 后自己的项目仓库地址: https://gitee.com/lluo-liang/spring-mcp-server

企业微信截图_cd0af211-1fc9-4ecf-ab4c-2beb453d185f.png

测试访问

遇到问题

exec /app/start.sh: no such file or directory

DockerFile 文件内容

FROM eclipse-temurin:17-jre-alpine

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone

MAINTAINER WuFengSheng

ENTRYPOINT ["/app/start.sh"]

# sse
EXPOSE 9800
# http
EXPOSE 9801
# ws
EXPOSE 9802

修改为

FROM eclipse-temurin:17-jre-alpine

# 设置工作目录(关键修复)
WORKDIR /app

# 复制整个app目录内容到镜像工作目录
COPY ./app .
RUN ls -l   # 列出当前目录(/app)下的文件,确保start.sh存在
RUN ls -l start.sh   # 检查start.sh是否存在

# 设置时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo 'Asia/Shanghai' >/etc/timezone

# 赋予执行权限(关键步骤)
RUN chmod +x start.sh

# 入口点改用相对路径(因设置了WORKDIR)
ENTRYPOINT ["./start.sh"]

# 暴露端口
EXPOSE 9800 9801 9802

构建时查看输出:

docker build --no-cache . 2>&1 | grep "start.sh"

如果输出不显示 start.sh,说明文件未复制成功

排查到可能是文件格式的问题

Shell脚本格式问题

👉 的确是文件格式问题

# 进入项目目录
cd /my-project/spring-mcp-server/backend/docker

# 安装dos2unix转换工具
yum install dos2unix -y  # CentOS/RHEL
# 或 apt-get install dos2unix -y  # Ubuntu/Debian

# 转换脚本格式(移除CR字符)
dos2unix app/start.sh

验证文件状态

# 确认文件属性(应有x权限)
ls -l app/start.sh
# 应有类似:-rwxr-xr-x 1 root root 771 Jun 23 22:52 start.sh

# 检查文件头部(确认无CR字符)
head -n1 app/start.sh | cat -A
# 正确应显示:#!/bin/sh$ (结尾只有$无^M)

部署验证

先看一下 MCP 服务有没有正常启动

看起来是有问题的,应该还是很基础的问题,暂时没啥思路,等下看看


前端部署

  • Nginx 配置 ws:// 或 wss://
location /mcp/ {
    proxy_pass http://192.168.0.160:9802/mcp/;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}
  • 聊天窗口通过 ws:// 连接 mcp-client-ws 服务
cd vue2-chat-window
npm install
npm run serve