A Compose file can parse as YAML and still fail because a service, network, or volume reference is missing. A useful preflight starts with static structure, then uses the exact Compose engine and environment intended for deployment.
Run a private static check
Inspect services, references, tags, ports, privileges, and clear-text values without pulling images.
compose.yamlResolve environment variables
List every ${VARIABLE} and confirm the deployment environment provides it without committing secrets.
${DATABASE_URL}Use the target Compose parser
Run config validation with the same Docker Compose major version used in production.
docker compose config --quietTest the rendered project
Review the normalized configuration, pull policy, health checks, resource limits, and startup dependencies in a non-production environment.
docker compose config- Valid YAML is not the same as valid Compose configuration.
- Static checks do not pull images or prove runtime health.
- The target Docker Compose engine remains authoritative.