Lesson 18 / 26

A docker-compose.yml Example

Define an app service and a database service that talk to each other.

app + database

Each top-level key under services becomes a container. Compose automatically creates a shared network so app can reach db by name.

services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - DB_HOST=db
    depends_on:
      - db

  db:
    image: postgres:16
    environment:
      - POSTGRES_PASSWORD=secret
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata: