PHP

Docker pour développeurs WordPress et PHP : guide pratique (2026)

Publié le 5 February 2026 — 3 min de lecture
En bref

Docker simplifie radicalement le développement local WordPress et PHP. Ce guide vous montre comment configurer un environnement Docker complet avec WordPress, PHP 8.4, MySQL et MailHog, reproductible sur tous les postes de votre équipe.

Fini les “ça marche sur ma machine” — Docker garantit que votre environnement de développement est identique sur tous les postes et en production. Pour les développeurs WordPress et PHP, Docker remplace XAMPP, WAMP, MAMP et les configurations PHP/Apache manuelles.

Pourquoi Docker pour le développement local ?

Problème classique : vous développez sur PHP 8.2, le client a PHP 7.4 en prod, votre collègue a PHP 8.4. Les comportements diffèrent et les bugs de compatibilité sont impossibles à reproduire. Docker résout ça en encapsulant l’environnement entier (PHP, serveur web, base de données) dans des conteneurs portables.

docker-compose.yml pour WordPress

version: '3.8'
services:
  wordpress:
    image: wordpress:6.7-php8.3-apache
    ports:
      - '8080:80'
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wp
      WORDPRESS_DB_PASSWORD: secret
      WORDPRESS_DEBUG: '1'
    volumes:
      - ./wp-content:/var/www/html/wp-content  # Vos thèmes et plugins en local
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    depends_on:
      - db

  db:
    image: mysql:8.0
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wp
      MYSQL_PASSWORD: secret
      MYSQL_ROOT_PASSWORD: rootsecret
    volumes:
      - db_data:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin
    ports:
      - '8081:80'
    environment:
      PMA_HOST: db
    depends_on:
      - db

  mailhog:
    image: mailhog/mailhog
    ports:
      - '1025:1025'  # SMTP
      - '8025:8025'  # Interface web

volumes:
  db_data:

Lancez avec docker compose up -d. WordPress est accessible sur http://localhost:8080, phpMyAdmin sur http://localhost:8081, MailHog (intercepte les emails) sur http://localhost:8025.

Dockerfile pour une application PHP/Symfony personnalisée

FROM php:8.3-fpm-alpine

# Extensions PHP nécessaires
RUN apk add --no-cache 
    git 
    libpng-dev 
    libzip-dev 
    icu-dev 
    && docker-php-ext-install 
    pdo_mysql 
    gd 
    zip 
    intl 
    opcache

# Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

WORKDIR /var/www/html
COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader

COPY . .

# OPCache configuration
COPY docker/php/opcache.ini /usr/local/etc/php/conf.d/opcache.ini

Volumes : garder vos données entre les redémarrages

Sans volume, vos données disparaissent quand le conteneur s’arrête. Deux types de volumes :

  • Bind mounts (./wp-content:/var/www/html/wp-content) — lie un dossier local au conteneur. Parfait pour développer : vous éditez en local, les changements sont immédiatement visibles dans le conteneur.
  • Named volumes (db_data:/var/lib/mysql) — données gérées par Docker, persistées entre les redémarrages. Idéal pour la base de données.

WP-CLI dans Docker

WP-CLI est l’outil en ligne de commande WordPress. Dans Docker :

# Ajouter au docker-compose.yml
wpcli:
  image: wordpress:cli
  volumes:
    - ./wp-content:/var/www/html/wp-content
  depends_on:
    - db
  environment:
    WORDPRESS_DB_HOST: db
    WORDPRESS_DB_NAME: wordpress
    WORDPRESS_DB_USER: wp
    WORDPRESS_DB_PASSWORD: secret
    WP_CLI_ALLOW_ROOT: '1'

# Usage
docker compose run --rm wpcli wp plugin list
docker compose run --rm wpcli wp user create dev dev@local.fr --role=administrator --user_pass=dev
docker compose run --rm wpcli wp cache flush

Partager l’environnement avec l’équipe

Committez le docker-compose.yml dans votre dépôt git. Ajoutez un Makefile pour simplifier les commandes fréquentes :

up:
    docker compose up -d
down:
    docker compose down
shell:
    docker compose exec wordpress bash
logs:
    docker compose logs -f wordpress
db-export:
    docker compose exec db mysqldump -uwp -psecret wordpress > backup.sql

Tout développeur qui rejoint l’équipe a un environnement fonctionnel en 5 minutes avec make up. Pas de documentation à suivre, pas de configuration manuelle.

W
Rédigé par
WebEngine
Développeur web freelance à Paris spécialisé WordPress, WooCommerce et SEO technique depuis 2010. 13 avis vérifiés · Note 5/5. Chaque site livré atteint un score PageSpeed mobile supérieur à 90.

Un projet en tête ?

Devis gratuit sous 48h, sans engagement.

Demander un devis gratuit