Documentation area
Docker / deployment
Location
README.md#docker-deployment, README.zh-CN.md#docker-部署, docker-compose.yml, docker-compose.full.yml, config.docker.example.yaml
What is missing, unclear, or outdated?
Docker 全量部署时,config.yaml 的读取方式和环境变量覆盖规则不够清晰,容易让部署用户误以为配置文件没有生效。
实际部署中,已将配置文件挂载到容器内:
volumes:
- ./config.yaml:/app/config.yaml:ro
并尝试指定:
CONFIG_FILE: "/app/config.yaml"
CONFIG_PATH: "/app/config.yaml"
但最终发现只有把关键配置全部写入 compose environment 后才部署成功。
从当前代码和 compose 示例看,有几个地方需要文档明确说明:
- Docker 镜像工作目录是 /app,默认会尝试读取 /app/config.yaml。
- 当前自定义配置路径只支持 CONFIG_FILE,不支持 CONFIG_PATH。
- 配置优先级是:环境变量 > config.yaml > 代码默认值。
- docker-compose.full.yml 默认写了 POSTGRES_DSN、REDIS_ADDR、REDIS_PASSWORD,这些会覆盖 config.yaml 中对应配置。
- config.yaml 主要用于静态基础设施配置,部分运行时业务配置由数据库 settings 和后台管理控制,不会从 YAML 读取。
这些信息如果没有集中说明,会让 Docker 部署用户很难判断到底是配置文件没挂载、路径不对、环境变量覆盖,还是某些配置本来就不从 YAML 读取。
Suggested update
建议补充 Docker 部署配置说明:
- 明确 Docker 中默认配置文件路径:
- 明确支持的自定义配置路径变量:
CONFIG_FILE: "/app/config.yaml"
并说明当前不支持 CONFIG_PATH。
- 明确配置优先级:
环境变量 > config.yaml > 代码默认值
- 在 full compose 示例中说明以下环境变量会覆盖 config.yaml:
POSTGRES_DSN
REDIS_ADDR
REDIS_PASSWORD
- 增加一个推荐的 Docker 配置示例,说明两种方式:
- 方式一:主要使用 config.yaml,compose 中只保留必要挂载。
- 方式二:主要使用 environment,适合平台化部署和密钥注入。
- 明确区分:
- 静态基础设施配置:从 config.yaml 或环境变量读取。
- 运行时业务配置:从数据库 settings 读取,并通过后台管理修改。
- 如果可能,建议文档提示启动日志中应检查实际加载的配置文件路径,便于排查。
Impact
Operators / deployers
Pre-submit checklist
Documentation area
Docker / deployment
Location
README.md#docker-deployment, README.zh-CN.md#docker-部署, docker-compose.yml, docker-compose.full.yml, config.docker.example.yaml
What is missing, unclear, or outdated?
Docker 全量部署时,config.yaml 的读取方式和环境变量覆盖规则不够清晰,容易让部署用户误以为配置文件没有生效。
实际部署中,已将配置文件挂载到容器内:
并尝试指定:
但最终发现只有把关键配置全部写入 compose environment 后才部署成功。
从当前代码和 compose 示例看,有几个地方需要文档明确说明:
这些信息如果没有集中说明,会让 Docker 部署用户很难判断到底是配置文件没挂载、路径不对、环境变量覆盖,还是某些配置本来就不从 YAML 读取。
Suggested update
建议补充 Docker 部署配置说明:
并说明当前不支持 CONFIG_PATH。
Impact
Operators / deployers
Pre-submit checklist