现象
用户使用FastGPT私有部署版本4.8.3,执行构建命令sudo docker build -f ./projects/app/Dockerfile -t rag:dev . --build-arg name=app --build-arg proxy=taobao时,镜像构建的第10步RUN pnpm --filter=app build失败。构建日志显示,Next.js 14.2.3在执行lint与类型检查环节编译失败,报错定位至./src/components/ChatBox/index.tsx的190:28行,提示React Hook useCallback相关警告后终止编译。用户反馈尝试过多个node、pnpm版本(包括项目自带版本),但均出现该问题,而v4.8.1版本可正常编译。
可能原因
从现有报错日志来看,问题发生在Next.js的编译校验环节,具体触发原因未在issue中明确。结合用户反馈的版本差异,可能与FastGPT 4.8.3版本的依赖配置、构建环境参数或代码中的React Hook使用场景有关,具体原因需结合实际部署环境进一步确认。
排查步骤
- 确认当前使用的FastGPT私有部署版本为4.8.3,完整记录执行的docker构建命令。
- 查看构建日志,定位报错文件
./src/components/ChatBox/index.tsx的190行附近代码,检查React Hook useCallback的使用逻辑。 - 核对构建环境的node、pnpm版本,对比v4.8.1正常编译时的环境版本信息。
- 检查构建时传入的
proxy参数是否对依赖安装或代码编译流程产生影响。
解决与验证
可通过以下步骤尝试解决该编译失败问题:
- 回退至FastGPT 4.8.1版本,执行相同的docker构建命令,验证编译是否可正常完成。
- 调整构建环境的node、pnpm版本,匹配可正常编译的环境配置。
- 针对
./src/components/ChatBox/index.tsx中useCallback的代码,检查是否存在依赖数组配置错误等常见问题并修正。
验证方式为重新执行原docker构建命令,确认编译阶段不再出现Failed to compile报错。