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-dev pour 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.