# .env (auto-loaded)
POSTGRES_VERSION=16
APP_PORT=3000
IMAGE_TAG=1.2.0
# docker-compose.yml
services:
db:
image: postgres:${POSTGRES_VERSION}
web:
image: myapp:${IMAGE_TAG:-latest}
ports:
- "${APP_PORT}:3000"
# Substitution forms
${VAR} # required — error if missing
${VAR:-default} # use default if unset
${VAR:?error} # error with message if unset
docker compose --env-file .env.prod up