TechLead
Lección 12 de 18
5 min de lectura
Docker

Docker para Desarrollo Frontend

Contenedoriza aplicaciones React, Next.js y otros frameworks frontend con configuraciones Docker optimizadas

¿Por qué Docker para Frontend?

Docker asegura que todos los desarrolladores de tu equipo tengan exactamente el mismo entorno de desarrollo, elimina los problemas de "funciona en mi máquina" y hace el despliegue consistente.

Aplicación React

Dockerfile de Producción (Multi-Etapa)

# Etapa 1: Construcción
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# Etapa 2: Servir con Nginx
FROM nginx:alpine
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Docker Compose para Desarrollo Frontend

# docker-compose.yml
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile.dev
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    environment:
      - NEXT_PUBLIC_API_URL=http://api:4000
    depends_on:
      - api

  api:
    build: ./api
    ports:
      - "4000:4000"
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secreto
      POSTGRES_DB: miapp
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:

Errores Comunes

  • Hot Reload: Usa montajes bind y --host 0.0.0.0 para habilitar hot reload en contenedores
  • node_modules: Usa un volumen anónimo para prevenir que los node_modules del host sobreescriban los del contenedor
  • Build Args: Las variables con prefijo NEXT_PUBLIC_ deben establecerse en tiempo de build, no en runtime

Continuar Aprendiendo