Comment configurer un environnement de développement Rails avec Docker
Faire fonctionner le code d’une application Rails ne devrait pas être difficile. Pourtant, les développeurs passent des heures à résoudre des problèmes d’environnement. Docker résout cela.
Pourquoi Docker pour le Développement ?
- Environnements cohérents - Fonctionne pareil sur chaque machine
- Intégration facile - Les nouveaux devs exécutent une commande
- Dépendances isolées - Pas de conflits avec d’autres projets
- Parité production - Développez dans un environnement similaire à la production
Configuration de Base
Créez 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"]
Créez 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:
Exécuter Votre App
docker compose build
docker compose up
Visitez http://localhost:3000 et vous êtes prêt à développer.
Conseils
- Utilisez les montages de volumes pour le rechargement de code en direct
- Ajoutez Redis, Sidekiq selon les besoins
- Créez un script
bin/docker-devpour les commandes courantes
Docker élimine le problème “ça marche sur ma machine” et permet à votre équipe de se concentrer sur la construction de fonctionnalités.