version: '3.8' services: api: build: ./app ports: - "3000:3000" environment: - DB_HOST=db - REDIS_HOST=redis depends_on: db: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/health"] interval: 30s
docker run ... (20 flags) docker network create ... docker volume create ... → Error-prone, slow, non-repeatable. a developer's essential guide to docker compose pdf
db: image: postgres:15 volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: example version: '3
Use a wait-script or dockerize inside your app. 8. Development vs. Production Compose Files Approach 1: Override file a developer's essential guide to docker compose pdf