Back to Blog
·12 min

Docker and Containerization: DevOps for Web Developers

Docker containers ensure consistent environments from development to production.

Multi-Stage Dockerfile for Next.js

FROM node:20-alpine AS deps
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production

FROM node:20-alpine AS builder
WORKDIR /app
COPY . .
COPY --from=deps /app/node_modules ./node_modules
RUN npm run build

FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
EXPOSE 3000
CMD ["node", "server.js"]

Docker Compose for Development

version: '3.8'
services:
  app:
    build: .
    ports: ["3000:3000"]
    environment:
      - DATABASE_URL=postgresql://postgres:password@db:5432/myapp
      - REDIS_URL=redis://redis:6379
    depends_on: [db, redis]

  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: password
    volumes: [pgdata:/var/lib/postgresql/data]

  redis:
    image: redis:alpine

The Bottom Line

The Cloud Deploy Dashboard from BreafIO provides deployment configuration. The SaaS Starter Kit includes Docker setup. The API Boilerplate has production Dockerfiles. The Database Manager includes database containers, and the Deployment Pipeline Dashboard tracks deployments.

Ready to Build?

Get started with our production-ready starter kits and ship your project faster.

Browse Starter Kits