现象
私有部署v4.14.9.3版本的FastGPT,可正常登录,但code-sandbox容器不断重启。容器报错信息包含:[dotenv@17.3.1] injecting env (0) from .env,以及Invalid environment variables下LOG_ENABLE_CONSOLE、LOG_ENABLE_OTEL提示"Invalid input: expected boolean, received string"。
可能原因
docker-compose配置中,LOG_ENABLE_CONSOLE、LOG_ENABLE_OTEL两个布尔类型的环境变量被单引号包裹,被dotenv解析为字符串类型,但程序要求传入布尔值,导致环境变量校验失败,容器启动失败后不断重启。
排查步骤
- 查看code-sandbox容器的运行日志,确认是否存在dotenv环境变量类型错误的报错信息;
- 打开部署使用的docker-compose.yml文件,定位到code-sandbox服务的environment配置段;
- 检查
LOG_ENABLE_CONSOLE、LOG_ENABLE_OTEL的赋值格式,确认是否被引号包裹; - 核对其他布尔类型环境变量的配置格式,避免类似问题。
解决与验证
解决方法:将LOG_ENABLE_CONSOLE、LOG_ENABLE_OTEL的单引号移除,直接赋值为布尔值,即修改为LOG_ENABLE_CONSOLE: true和LOG_ENABLE_OTEL: false。验证步骤:重新启动code-sandbox容器,查看容器日志,确认无dotenv环境变量类型报错,容器不再自动重启,功能恢复正常。需注意,布尔类型环境变量无需添加引号包裹,直接使用true/false即可。
来源:https://github.com/labring/FastGPT/issues/6631