部署后服务一直重启,日志里反复打印连接数据库超时,其他容器看起来正常。
一开始怀疑是「认证信息与初始化时不一致」,查了一圈,方向不对。
排查方向其实有限,先把可能性排一排。数据库容器还没就绪,应用先启动了。少数情况下是连接串里的地址或端口写错。
另外,数据卷权限不对,数据库无法写入。
第一件事是确认数据库容器健康状态
docker compose ps mongo
再往下查看连接串配置
docker compose exec app env | Select-String MONGO
随后按健康检查结果延迟启动应用
docker compose up -d --wait
剩下的就是核对数据卷权限
docker volume inspect fastgpt_mongo
中途换过一次思路,把范围缩到最小的那一层,反而快了。
别只看报错消失,验证要多做一步。应用正常启动并连接数据库,页面可以打开,知识库能创建。
这里还有个坑。容器编排里没有就绪等待时,应用启动失败会反复重启,等服务起来后往往自己就恢复了,不必急着改配置。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。