← Back to Notes

Docker compose for local dev

DockerDevOps

Docker Compose for Local Development

Basic Setup

# docker-compose.yml
version: '3.8'

services:
  postgres:
    image: postgres:16
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: dev
      POSTGRES_PASSWORD: dev
      POSTGRES_DB: myapp
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

volumes:
  postgres_data:

Usage

# Start all services
docker compose up -d

# Stop all services
docker compose down

# View logs
docker compose logs -f postgres

# Connect to postgres
docker compose exec postgres psql -U dev -d myapp

.env for local dev

DATABASE_URL="postgresql://dev:dev@localhost:5432/myapp"
REDIS_URL="redis://localhost:6379"

Health Check

services:
  postgres:
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U dev"]
      interval: 5s
      timeout: 5s
      retries: 5