现象
该问题出现在FastGPT私有部署版本v4.14.10中,主要表现为两点:一是deploy/templates/docker-compose.dev.yml和deploy/templates/docker-compose.prod.yml内的OpenSandbox相关镜像(opensandbox-server、execdimage、egress.image)被硬编码,未通过`deploy/args.json`注入镜像地址与标签;二是执行`pnpm run gen:deploy`命令生成部署文件后,global compose配置中出现`AGENTSANDBOXOPENSANDBOXIMAGE_REPO: undefined和image: undefined:v0.1`的错误配置。
可能原因
问题根源有两处:第一,两个docker-compose模板文件未遵循统一的镜像配置逻辑,将OpenSandbox相关镜像硬编码,未使用deploy/args.json中的变量注入配置;第二,deploy/args.json配置文件存在两处遗漏:未配置opensandbox-server、opensandbox-execd、opensandbox-egress的镜像信息,同时缺少images.global["agent-sandbox-image"]项,导致生成部署文件时无法获取对应镜像的有效配置,出现未定义参数。
排查步骤
- 查看
deploy/templates/docker-compose.dev.yml与deploy/templates/docker-compose.prod.yml文件,检查OpenSandbox相关服务的镜像配置是否为硬编码值; - 打开
deploy/args.json文件,确认是否存在opensandbox-server、opensandbox-execd、opensandbox-egress的镜像配置项,以及images.global["agent-sandbox-image"]是否存在; - 执行
pnpm run gen:deploy命令,查看生成的部署文件中OpenSandbox相关镜像是否存在undefined相关报错。
解决与验证
- 补充
deploy/args.json配置:添加opensandbox-server、opensandbox-execd、opensandbox-egress的tags和images.cn/images.global配置,参考官方配置示例:CN环境分别为sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server等,Global环境分别为opensandbox/server等;同时补齐images.global["agent-sandbox-image"]配置项; - 修改模板文件:将
deploy/templates/docker-compose.dev.yml和deploy/templates/docker-compose.prod.yml内硬编码的opensandbox-server、execd_image、egress.image替换为模板变量,例如${{opensandbox-server.image}}:${{opensandbox-server.tag}}; - 重新生成部署文件:执行
pnpm run gen:deploy命令,重新生成deploy/dev/、deploy/docker/和document/public/deploy/docker/目录下的部署文件; - 验证配置:检查生成的部署文件,确认OpenSandbox相关镜像已从
deploy/args.json读取配置,无undefined相关报错。
来源:https://github.com/labring/FastGPT/issues/6707