故障排查GitHub issue3 分钟阅读排错/错误码

解决FastGPT私有部署MongoDB权限导致的创建应用失败问题

用户在FastGPT V4.8.5私有部署环境中出现两个问题:一是无法创建应用,调用/api/core/app/create接口时报错1: Operation not permitted;二是上传文件后无法进行下一步操作。

现象

用户在FastGPT V4.8.5私有部署环境中出现两个问题:一是无法创建应用,调用/api/core/app/create接口时报错1: Operation not permitted;二是上传文件后无法进行下一步操作。查看容器日志可发现MongoDB存储引擎报错:WT_SESSION.create: __posix_open_file, 815: /data/db/collection-13--4210291667907924385.wt: handle-open: open: Operation not permitted。用户环境为Windows 11 23H2下的WSL2 Ubuntu24.04,使用Docker 4.31.1部署。

可能原因

从报错日志可知,MongoDB尝试创建集合文件时无法打开目标文件,核心原因是MongoDB容器对挂载的数据目录缺乏足够的读写权限。由于用户通过WSL2运行Docker,宿主机目录的权限配置可能未适配容器内MongoDB进程的权限要求,MongoDB容器默认使用UID 999的mongod用户运行。

排查步骤

  1. 查看MongoDB和FastGPT容器的日志,确认是否存在Operation not permitted以及WiredTiger文件打开失败的报错内容。
  2. 登录WSL2的Ubuntu终端,进入docker-compose.yml配置的MongoDB数据挂载目录,执行ls -ld命令查看目录所有者与权限。
  3. 确认目录所有者是否为UID 999的用户,或是否具备读写权限。
  4. 检查docker-compose.yml中MongoDB服务的卷挂载配置,确认挂载路径正确无误。

解决与验证

  1. 执行docker compose down停止所有容器。
  2. 修改MongoDB数据挂载目录的权限,将所有者设置为UID 999的用户:sudo chown -R 999:999 /your/mongo/data/path,其中/your/mongo/data/path替换为实际的挂载目录。
  3. 重新启动容器:docker compose up -d
  4. 尝试创建应用与上传文件,确认操作可正常完成。再次查看容器日志,确认不再出现Operation not permitted相关报错。

来源:FastGPT GitHub issue