CodeRespite
Back to Templates
Boilerplates: Containerization

Docker Compose Node Stack

Copy-ready local developer Docker Compose configuration linking Web App, Postgres DB, and Redis Cache containers.

docker-compose.yml
version: '3.8'

services:
  # Node.js Application server
  web:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=development
      - DATABASE_URL=postgresql://db_user:db_pass@postgres:5432/db_name
      - REDIS_URL=redis://redis:6379
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    depends_on:
      - postgres
      - redis

  # PostgreSQL Database container
  postgres:
    image: postgres:15-alpine
    environment:
      - POSTGRES_USER=db_user
      - POSTGRES_PASSWORD=db_pass
      - POSTGRES_DB=db_name
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data

  # Redis Cache container
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

volumes:
  pgdata: