Lesson 20 / 28

A docker-compose.yml Example

Write a docker-compose.yml with an app and a database service that share a network and volume.

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: