Blog

Docker Compose para desarrollo local: base de datos, Redis y servicios sin drama

Cómo usar Docker Compose para tener un entorno local idéntico al de producción.

#docker#devops#desarrollo#local-setup#infraestructura

El desarrollo local sin Docker suele acabar en "funciona en mi máquina". Docker Compose resuelve eso: todos trabajan exactamente con la misma versión de PostgreSQL, Redis, etc.

El setup mínimo: database, cache y tu aplicación

Un docker-compose.yml básico define: PostgreSQL con volumen para persistencia, Redis para caché, tu aplicación con dependencias. Eso es suficiente para empezar.

Los volúmenes aseguran que los datos persistan entre restarts. Las variables de entorno apuntan a los servicios que Docker crea.

  • PostgreSQL: la fuente de verdad de datos.
  • Redis: caché y sesiones.
  • Tu app: apunta a localhost con puertos mapeados.

Volúmenes: persiste datos, no los pierdas

Un volumen Docker mapea una carpeta dentro del contenedor a una carpeta del host. Si PostgreSQL guarda datos en /var/lib/postgresql/data y mapeas un volumen ahí, los datos persisten incluso si detienes el contenedor.

Sin volúmenes, cada vez que levantas el container empiezas de cero.

  1. Define volúmenes para servicios con estado.
  2. Usa nombres en lugar de paths relativos.
  3. Documento qué limpia y qué persiste.

Networking: que los servicios se hablen entre sí

Docker Compose crea una red donde los servicios se comunican por nombre. Tu aplicación accede a PostgreSQL con host "postgres" (el nombre del servicio), no localhost.

Eso es lo que lo hace portable: cambias localhost por el nombre del servicio y funciona igual en producción.

  • DATABASE_URL=postgres://user:pass@postgres:5432/dbname
  • REDIS_URL=redis://redis:6379
  • Nombres de servicios como hosts.

Debugging: qué mirar cuando algo no funciona

docker-compose logs muestra qué pasa en cada servicio. docker-compose ps muestra estado. docker-compose down y up es tu mejor amigo cuando todo se vuelve raro.

Cuando dudas, baja todo y levanta de nuevo. Docker Compose es lo suficientemente ligero como para que no sea drama.

Configuración para múltiples miembros del equipo

Mantén el docker-compose.yml en git. Usa .env.example documentando qué variables hay. En local, cada uno crea su .env desde el ejemplo.

Eso permite que el setup sea reproducible sin guardar secretos en git.

04 / Contacto

¿Hablamos de tu próximo sistema?

Cuéntame el problema que quieres resolver. Respondo en un día laborable y planteo una ruta de acción en el primer mensaje.

Iniciar conversación →