Cómo configurar un entorno de desarrollo Rails con Docker
Hacer funcionar el código de una aplicación Rails no debería ser difícil. Sin embargo, los desarrolladores pasan horas solucionando problemas de entorno. Docker resuelve esto.
¿Por qué Docker para Desarrollo?
- Entornos consistentes - Funciona igual en cada máquina
- Incorporación fácil - Los nuevos devs ejecutan un comando
- Dependencias aisladas - Sin conflictos con otros proyectos
- Paridad con producción - Desarrolla en un entorno similar a producción
Configuración Básica
Crea un Dockerfile:
FROM ruby:3.2
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
WORKDIR /app
COPY Gemfile Gemfile.lock ./
RUN bundle install
COPY . .
CMD ["rails", "server", "-b", "0.0.0.0"]
Crea un docker-compose.yml:
version: '3.8'
services:
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: password
volumes:
- postgres_data:/var/lib/postgresql/data
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && rails server -b 0.0.0.0"
volumes:
- .:/app
ports:
- "3000:3000"
depends_on:
- db
environment:
DATABASE_URL: postgres://postgres:password@db/app_development
volumes:
postgres_data:
Ejecutando Tu App
docker compose build
docker compose up
Visita http://localhost:3000 y estarás listo para desarrollar.
Consejos
- Usa montajes de volumen para recarga de código en vivo
- Agrega Redis, Sidekiq según sea necesario
- Crea un script
bin/docker-devpara comandos comunes
Docker elimina el problema de “funciona en mi máquina” y permite que tu equipo se enfoque en construir características.