Appearance
本地部署
待后续跟进一下
服务器部署
后端部署
- 打包 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.shFork 后自己的项目仓库地址: https://gitee.com/lluo-liang/spring-mcp-server

测试访问
遇到问题
exec /app/start.sh: no such file or directoryDockerFile 文件内容
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