现象
fastgpt-mcp-server 容器启动时抛出模块未找到错误,报错信息为:
Error: Cannot find module '/app/projects/mcp_server/dist/index.js'
at Module._resolveFilename (node:internal/modules/cjs/loader:1145:15)
at Module._load (node:internal/modules/cjs/loader:986:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
at node:internal/main/run_main_module:28:49 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}容器使用 Node.js v20.14.0,最终以退出码 1 异常退出。
可能原因
- MCP 服务器项目未执行构建流程,未生成 dist 目录及 index.js 产物文件
- 容器启动配置中指定的入口文件路径与实际部署的文件路径不匹配
- 部署过程中遗漏了构建产物的复制步骤,导致产物未正确放置到容器指定目录
排查步骤
- 进入 fastgpt-mcp-server 容器,执行
ls /app/projects/mcp_server/命令,查看是否存在 dist 目录及其中的 index.js 文件 - 检查部署脚本或 Dockerfile 配置,确认是否包含 MCP 服务器项目的构建步骤,例如依赖安装与代码编译命令
- 核对容器启动命令或配置文件中指定的入口文件路径,确认与实际部署的文件路径一致
- 检查容器挂载的卷配置,确认是否正确指向了包含构建产物的本地目录
解决与验证
根据排查结果执行对应操作:
- 若未执行构建:在 MCP 服务器项目目录下执行对应构建命令(需按实际项目配置执行),生成 dist 目录及 index.js 文件
- 若路径不匹配:修改启动配置中的入口文件路径,使其指向实际存在的 index.js 文件
- 若遗漏产物复制:调整部署流程,将构建后的 dist 产物复制到容器的
/app/projects/mcp_server/目录下
完成操作后,重新启动 fastgpt-mcp-server 容器,确认容器不再抛出 MODULENOTFOUND 错误,进程正常运行。