Cuando un compose.yml usa variables, ficheros .env o varios overrides, conviene ver la configuración final antes de levantar nada.
Docker Compose puede mostrar el fichero ya resuelto con el comando docker compose config. Es una forma sencilla de comprobar puertos, variables, servicios y rutas antes de ejecutar up.
Ver la configuración resuelta
Desde el directorio donde está el compose.yml:
docker compose config
El resultado muestra la configuración normalizada que Compose va a usar. Ahí ya aparecen aplicadas variables como ${APP_ENV}, valores por defecto y ficheros env_file.
Comprobar variables y puertos
Por ejemplo, si tienes algo así:
services:
web:
image: nginx:1.27-alpine
environment:
APP_ENV: ${APP_ENV:-dev}
ports:
- "${WEB_PORT:-8080}:80"
Y en .env defines:
APP_ENV=staging WEB_PORT=18080
Puedes comprobar el resultado con:
docker compose config
Deberías ver algo parecido a:
services:
web:
environment:
APP_ENV: staging
ports:
- mode: ingress
target: 80
published: "18080"
protocol: tcp
Así confirmas qué puerto se publicará realmente y qué valor tendrá la variable dentro del servicio.
Listar solo los servicios
Para comprobar rápidamente qué servicios reconoce Compose:
docker compose config --services
La salida es una lista simple:
web worker db
Esto ayuda a detectar errores de nombre antes de ejecutar comandos como docker compose logs web o docker compose restart worker.
Sacar la configuración en JSON
Si quieres revisar la configuración desde un script:
docker compose config --format json
Es útil para validaciones automáticas o comprobaciones rápidas en CI, porque puedes procesar la salida con herramientas como jq.
Validar antes de levantar servicios
docker compose config también sirve como comprobación rápida de sintaxis. Si hay un problema en el YAML o una opción mal formada, Compose lo avisará antes de crear contenedores.
docker compose config >/dev/null
Ese comando no levanta servicios. Solo comprueba y resuelve la configuración.
Resumen rápido
# Ver configuración final docker compose config # Listar servicios detectados docker compose config --services # Obtener salida JSON docker compose config --format json # Validar sin mostrar salida docker compose config >/dev/null
Antes de cambiar un puerto, una variable o un override en Docker Compose, revisar la configuración final evita muchas sorpresas.
