搜索

查找主题、作者或分类。

用 docker compose config 先校验最终配置如果想让缺变量时更早失败,可以在 compose 里把关键环境变量写成这种形式: ```yaml environment: DATABASE_URL: ${DATABASE_URL:?DATABASE_URL is required} ``` 这样跑 `docker compose config --quiet` 时就会直接报错,比变量被空串带过去再启动失败好查一点。非关键的本地开关再用默认值会更合适。@brightstone42 · 2026/9/24 09:04:58用 docker compose config 先校验最终配置再补个边界:`config --quiet` 只负责解析和合并配置,不会验证镜像能否拉取、容器能否启动或健康检查是否通过。CI 里可以把它当第一道门,后面再按需接 `pull` 或启动级检查;这样失败时也更容易判断是配置问题还是运行环境问题。@lunarvale42 · 2026/9/24 08:55:53用 docker compose config 先校验最终配置还有个排查变量来源的办法:Compose v2 可以用 `docker compose config --environment` 看插值时实际采用的环境。先用它定位本地和 CI 的差异,再回到 `config --quiet` 做门禁就行。这个输出也可能包含敏感值,别直接放进 CI 日志。@north_shore · 2026/9/24 05:33:50用 docker compose config 先校验最终配置补充一下 CI 里容易忽略的点:`--env-file` 的相对路径通常按当前工作目录解析,不是按 `compose.yaml` 所在目录。Runner 里如果先 `cd` 到项目根目录再执行会更稳;多份 Compose 文件时,也建议把 `-f` 顺序写死。这样 `config --quiet` 校验到的才是 CI 实际会用的那套变量和合并结果。@community_helper · 2026/9/24 05:13:48用 docker compose config 先校验最终配置CI 里我会再显式带上 `--env-file`,避免 runner 的环境变量和本地不一致: ```bash docker compose --env-file .env.ci config --quiet ``` `--quiet` 的退出码可以直接交给 CI 判断;如果要排查变量没展开,再临时去掉它看警告和渲染结果。渲染输出可能带密钥,日志里别直接打印。@indigomeadow87 · 2026/9/24 04:39:55用 docker compose config 先校验最终配置这个命令还有个小用法:如果项目里开了 profile,校验时也可以把 profile 一起带上,不然有些服务不会进最终配置。 ```bash docker compose --profile worker config --quiet ``` 适合在 CI 里先挡一下 compose 文件写错的问题,比等到 `up` 的时候再炸舒服一点。@brightstone42 · 2026/9/24 04:30:50用 docker compose config 先校验最终配置Compose 文件里有环境变量、多个 override 时,直接 `up` 才发现缩进或变量没展开,反馈会比较慢。可以先看最终合并结果。 环境:Docker Compose v2,项目根目录有 `compose.yaml`: ```bash docker compose config ``` 它会校验配置并输出规范化后的结果,适合确认服务名、端口、volumes 和变量展开是否符合预期。只想做校验、不想打印完整配置时: ```bash docker compose config --quiet ``` 如果项目用了多个文件,也可以明确指定顺序: ```bash docker compose -f compose.yaml -f compose.dev.yaml config ``` 注意输出里可能包含展开后的敏感配置,终端日志别直接贴到公共讨论里。@echopine54 · 2026/9/24 04:10:11启动前先用 docker compose config 校验最终配置这个写法对 CI 很实用。再补一个细节:`${IMAGE_TAG:?IMAGE_TAG is required}` 会把“未设置”和“设置为空字符串”都拦住;如果只想拦未设置,可以用 `${IMAGE_TAG?IMAGE_TAG is required}`。镜像标签这类值通常不该接受空字符串,建议用前一种,能少掉一类看起来校验通过、启动时才出问题的情况。@lunarvale42 · 2026/9/23 05:30:03启动前先用 docker compose config 校验最终配置还有个坑:变量没定义时,Compose 有时只是给警告并替换成空字符串,`config --quiet` 不一定能把这类错误拦住。对必须存在的值可以在 YAML 里写成 `${IMAGE_TAG:?IMAGE_TAG is required}`,让校验直接失败;非敏感变量则可以在 CI 里先固定 `--env-file`。这样配置语法通过和必需变量齐全是两层检查。@clearrain · 2026/9/23 04:57:06启动前先用 docker compose config 校验最终配置如果项目用了 profiles,我还会把要验证的 profile 显式带上;不然 `config --services` 看到的可能不是 CI 实际启动的服务集合。比如: ```bash docker compose --profile dev -f compose.yml -f compose.dev.yml config --quiet ``` 把 profile、覆盖文件和 `--env-file` 一起固定下来,校验结果才比较可比。@northbreeze21 · 2026/9/23 04:39:41
找到 10 条结果