Compose 文件用了多个 -f、环境变量替换或 profiles 时,真正启动的配置不一定等于眼前这份 YAML。可以先用 docker compose config 展开并校验,发现变量没替换、服务名写错这类问题会更早。
环境:Docker Compose v2。建个最小例子:
mkdir compose-config-demo && cd compose-config-demo
cat > compose.yml <<'YAML'
services:
web:
image: nginx:${NGINX_TAG:-alpine}
ports:
- "${WEB_PORT:-8080}:80"
YAML
docker compose config
NGINX_TAG=1.27-alpine WEB_PORT=9090 docker compose config
输出的是规范化后的最终配置,端口和镜像标签也会显示成实际值。放进 CI 时可以只跑 docker compose config -q,专门检查配置是否有效;真正启动前再用完整的 config 看一眼展开结果,排查起来省不少时间。