wordpress docker installation

Comment utiliser Docker pour installer WordPress en local sur Windows

Publié par Stéphane Brault

Docker est une plateforme de virtualisation qui permet de développer et distribuer des applications regroupées à l’intérieur de « conteneurs ». Ces conteneurs sont hébergés par un logiciel nommé « Docker Engine ». Celui-ci se charge de gérer et d’exécuter les applications retrouvées dans les conteneurs.

Ainsi, avec Docker, il est possible de déployer un stack AMP (Apache, MySQL, et PHP) local préconfiguré, afin d’y héberger un site WordPress. Nul besoin de connaître les rudiments de l’hébergement Web et d’installer manuallement Apache, MySQL et PHP sur votre poste de travail.

Docker ne sert pas qu’à déployer des stacks AMP: le Docker Hub propose des centaines de conteneurs gratuits, prêts à utiliser et ce, pour de multiples applications.

Dans ce tutoriel, nous verrons comment utiliser Docker pour installer WordPress en local sur votre poste de travail.

Étape #1: Installation de Docker Desktop

La première étape consiste de toute évidence à installer l’application Docker Desktop sur votre poste de travail. Docker est disponible en deux éditions: Docker CE, pour Community Edition, et Docker EE, pour Enterprise Edition. Par conséquent, nous utiliserons Docker CE.

Important: Docker ne peut pas co-habiter avec VirtualBox. Par conséquent, si vous utilisez VirtualBox, celui-ci ne sera plus fonctionnel après l’installation de Docker.

Pour télécharger Docker pour Windows 10, rendez-vous à l’adresse:
https://hub.docker.com/editions/community/docker-ce-desktop-windows

Notez que vous devrez vous enregistrer afin de télécharger le logiciel.

Ensuite, exécutez le programme d’installation de Docker en laissant toutes les options par défaut. Une fois l’installation terminée, vous serez invité à vous déconnecter de votre session Windows puis à vous reconnecter.

installation docker desktop windows 10

Après avoir ouvert une nouvelle session Windows, démarrez l’application « Docker Desktop ». Vous serez alors invité à activer « Hyper-V » et « Containers » afin que Docker fonctionnement correctement. Cliquez sur « Ok » pour procéder.

windows docker activation hyper-v

Une fois l’activation de « Hyper-V » et « Containers » terminée, votre ordinateur redémarrera automatiquement.

Étape #2: Modification du fichier « hosts »

Pour ce tutoriel, je vais installer WordPress pour le domaine « webmestre101.home.lan ». Nous allons donc ajouter une entrée au fichier « hosts » afin de pouvoir utiliser ce nom de domaine pour accéder au site WordPress.

Cliquez avec le bouton de droite sur l’icône de l’application Bloc-notes et sélectionnez Exécuter en tant qu’administrateur:

windows bloc-notes administrateur

Ouvrez maintenant le fichier c:\windows\system32\drivers\etc\hosts dans Bloc-notes. Insérez une ligne à la toute fin du fichier. Cette ligne doit contenir votre nom de domaine et doit pointer sur l’adresse IP 127.0.0.1.

windows fichier hosts

Sauvegardez le fichier et quittez l’éditeur.

Étape #3: Création du fichier Docker Compose

Afin d’installer WordPress en local, nous aurons besoin de deux conteneurs Docker:

  1. WordPress: Le conteneur officiel de WordPress contient en fait Apache et PHP, ce qui simplifie la tâche. 
  2. MySQL: Le conteneur officiel du serveur de base de données MySQL.

Lorsque plusieurs conteneurs Docker sont utilisés simultanément, il est préférable d’utiliser Docker Compose. Sur Windows, Docker Compose est inclut dans l’installation de Docker Desktop, donc nul besoin de l’installer manuellement.

Docker Compose permet de fournir les paramètres de configurations des conteneurs  et d’établir des dépendences entre eux. Ainsi, dans notre cas, le conteneur WordPress dépend du conteneur MySQL. Le conteneur WordPress doit attendre que le service MySQL soit actif avant de démarrer.

Dans un premier temps, créez les dossiers suivants:

c:\docker\wordpress

Créez ensuite un fichier nommé docker-compose.yml dans c:\docker\wordpress et copiez le contenu ci-après:

version: '3.3'

services:
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./wordpress_files:/var/www/html
    ports:
      - "80:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: my_wordpress_db_password
  db:
    image: mysql:5.7
    command: --init-file /data/application/init.sql
    volumes:
      - ./db_data:/var/lib/mysql
      - ./init.sql:/data/application/init.sql
    restart: always
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: my_wordpress_db_password
      MYSQL_ROOT_PASSWORD: root_password
volumes:
  db_data:
  wordpress_files:

Afin que la base de données soit créé automatiquement au démarrage du conteneur MySQL, créez un fichier nommé init.sql aussi dans c:\docker\wordpressInsérez les instructions SQL ci-dessous:

CREATE DATABASE IF NOT EXISTS wordpress;
CREATE USER IF NOT EXISTS 'wordpress'@'%' IDENTIFIED BY 'my_wordpress_db_password';
GRANT ALL ON `wordpress`.* TO 'wordpress'@'%' IDENTIFIED BY 'my_wordpress_db_password';
FLUSH PRIVILEGES;

Ainsi, la base de données wordpress sera créé au démarrage du conteneur MySQL si elle n’existe pas déjà. Il en va de même pour le compte d’utilisateur du même nom.

Étape #4: Démarrage des conteneurs Docker

Ouvrez une fenêtre d’invite de commande en appuyant sur la touches Windows+R et tapez cmd:

windows executer cmd

Tapez cette commande pour changer de répertoire:

cd c:\docker\wordpress

Démarrez ensuite les conteneurs à l’aide de docker-compose:

docker-compose up -d

Lors du premier démarrage, Docker télécharge les images pour WordPress et MySQL, ce qui peut prendre un certain temps:

docker compose download

Lorsque les téléchargements sont terminés, les conteneurs sont démarrés:

démarrage des conteneurs Docker

Lors du démarrage des conteneurs, il est possible que Docker Desktop vous demande si vous permettez de partager le lecteur C: de votre ordinateur. Vous devez cliquer sur « Yes » afin que MySQL puisse créer la base de données et que les fichiers de WordPress soit copiés.

Si vous avez des messages d’erreurs durant le démarrage des conteneurs, tapez cette commande pour les arrêter:

docker-compose down

Démarrez de nouveaux les conteneurs mais cette fois-ci en omettant le paramètre « -d »:

docker-compose up

Le paramètre « -d » sert à exécuter les conteneurs en arrière-plan. En omettant ce paramètre, les journaux d’exécution s’affichent à l’écran:

docker-compose up

Dans certains cas, cela peut vous aider à diagnostiquer des problèmes. Pour arrêter les conteneurs Docker, appuyez sur CTRL+C:

docker stop ctrl c

Étape #5: Configuration de WordPress

À ce stade, il ne vous reste plus qu’à configurer WordPress comme vous le faîtes à l’habitude. Utilisez votre navigateur Web pour accéder au site:

configuration de wordpress

Notez qu’il n’y a pas de certificat SSL installé donc vous devez accéder au site à l’adresse « http:// ».

En conclusion

Ce type d’installation est idéal pour travailler hors-ligne ou pour présenter une maquette à un client par exemple. Tous les fichiers sont contenus dans un seul et même répertoire (c:\docker\wordpress\), il est donc simple de copier le site sur un autre poste de travail.

Quant à WordPress, tous les fichiers se trouvent dans c:\docker\wordpress\wordpress_files. Il est vous est donc possible de modifier un thème en local puis de le copier sur le serveur de production une fois le développement terminé.

Toutefois, si vous devez installer et gérer plusieurs sites WordPress en local, il serait plus simple d’utiliser des outils tels que CapRover et EasyEngine. Ces outils permettent d’automatiser le déploiement de sites WordPress (et même d’autres types de site) de faĉon simple et rapide.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.