结论
FastGPT部署中Mongo副本集自动初始化失败,多数情况是CPU不支持AVX指令集,可切换Mongo4.x版本解决。若自动初始化仍失败,可通过手动步骤初始化副本集。
具体怎么做
- 创建并配置Mongo密钥: ``
bash openssl rand -base64 756 > ./mongodb.key chmod 600 ./mongodb.key chown 999:root ./mongodb.key`` - 修改
docker-compose.yml的Mongo服务配置,挂载密钥: ``yaml mongo: # image: mongo:5.0.18 # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云 container_name: mongo ports: networks: command: mongod --keyFile /data/mongodb.key --replSet rs0 environment: volumes:``- 27017:27017
- fastgpt
- MONGOINITDBROOT_USERNAME=myusername
- MONGOINITDBROOT_PASSWORD=mypassword
- ./mongo/data:/data/db
- ./mongodb.key:/data/mongodb.key
- 重启服务: ``
bash docker compose down docker compose up -d`` - 进入容器初始化副本集:
- 查看容器运行状态:
docker ps - 进入容器:
docker exec -it mongo bash - 连接数据库:
mongo -u myusername -p mypassword --authenticationDatabase admin - 执行初始化命令: ``
javascript rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "mongo:27017" } ] })`` - 检查状态:
rs.status(),提示rs0状态则初始化成功。若需外网访问,需添加Mongo连接参数directConnection=true。
- 查看容器运行状态:
注意事项
该方案在Ubuntu20/22、CentOS7、WSL2、Mac、Windows环境均通过测试。配置Mongo密钥时,需确保权限为chmod 600,所有者可设置为999:root,部分系统需调整为admin。初始化时需使用配置的用户名和密码,若仍无法启动,优先排查CPU是否支持AVX指令集,可切换Mongo4.x版本。
来源:FastGPT 官方文档