Retour au blog
Docker

Environnement de développement PHP avec Docker

12 Mar 2024 7 min
Docker PHP Développement

Un environnement de dev identique pour toute l'équipe

Fini les "ça marche sur ma machine". Docker garantit que chaque développeur travaille dans un environnement identique, éliminant les problèmes de compatibilité.

Stack de développement complète

version: '3.8'
services:
  php:
    build:
      context: .
      dockerfile: Dockerfile.dev
    volumes:
      - .:/var/www/html
      - composer-cache:/root/.composer
    environment:
      - APP_ENV=dev
      - XDEBUG_MODE=debug

  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: app
    ports:
      - "3306:3306"
    volumes:
      - mysql-data:/var/lib/mysql

  mailhog:
    image: mailhog/mailhog
    ports:
      - "8025:8025"

volumes:
  composer-cache:
  mysql-data:

Configuration Xdebug

Le debugging est essentiel en développement. Voici la configuration Xdebug optimale :

[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal
xdebug.client_port=9003

Hot reload et performances

Sur macOS et Windows, les volumes montés peuvent être lents. Utilisez des stratégies de synchronisation :

  • Mutagen pour la synchronisation rapide des fichiers
  • Exclure vendor/ et node_modules/ du montage
  • Utiliser des volumes nommés pour les dépendances

Cette approche permet d'avoir un environnement de développement opérationnel en moins de 5 minutes pour tout nouveau développeur rejoignant l'équipe.