←Retour au blog

Comment configurer un site Drupal ou WordPress localement avec Docker

2020-09-02‱4 min de lecture

Cet article n'a pas pour but de fournir des explications sur les outils que j'utilise pour configurer des sites Drupal/WordPress, je pense qu'il y a beaucoup d'informations disponibles sur Internet à leur sujet : Docker, Traefik, Compose. Le seul objectif de ce post est de documenter le processus que je suis, car il est vraiment facile, et en espérant que cela puisse aider d'autres personnes aussi.

Prérequis : Avant de commencer, vous avez besoin de :

  1. Docker installé.
  2. Connaissances de base de git.
  3. Être familier avec le terminal.
  4. Un dépÎt/une base de code Drupal/WordPress existante. Si vous souhaitez seulement essayer une installation fraßche, veuillez suivre la documentation officielle des installations vanilla de wodby.com, elles sont plus faciles que celle-ci. Les URL sont : Drupal ou WordPress

Les étapes pour Drupal 7/8/9 :

  1. CrĂ©ez un dossier oĂč vous souhaitez conserver les fichiers de votre projet. Le nom du dossier est important car le rĂ©seau sera créé en fonction de celui-ci. Choisissez un nom court et d'un seul mot, si possible. Le nom sera Ă©galement utilisĂ© pour l'URL. Pour les besoins de ce tutoriel, je vais crĂ©er un dossier nommĂ© d8base.
  2. Clonez le dĂ©pĂŽt Docker4Drupal dans le dossier que vous avez créé Ă  l'Ă©tape 1. Vous pouvez exĂ©cuter cette commande depuis le terminal pour ce faire : git clone [email protected]:wodby/docker4drupal.git .
  3. Créez un nouveau dossier et nommez-le web, à l'intérieur du dossier que vous avez créé à l'étape 1. Dans le fichier docker-compose, Nginx est configuré par défaut pour utiliser le dossier web comme racine du serveur. Nous clonons également notre base de code Drupal dans ce dossier.
  4. Supprimez le fichier docker-compose.override.yml et votre structure de fichiers devrait ressembler Ă  ceci : Alt Text
  5. Fichiers dans votre IDE prĂ©fĂ©rĂ© et modifiez le fichier .env. Les lignes que nous devons mettre Ă  jour sont les lignes 7 et 8. En tant que nom de projet, nous devons utiliser le mĂȘme que celui que nous avons utilisĂ© pour le dossier créé Ă  l'Ă©tape 1 (dans mon cas d8base). En tant qu'URL du projet, j'utilise le nom du dossier créé Ă  l'Ă©tape 1 comme prĂ©fixe et je garde la partie docker.localhost. C'est juste ma prĂ©fĂ©rence.
PROJECT_NAME=d8base
PROJECT_BASE_URL=d8base.docker.localhost
  1. Modifiez le fichier docker-compose.yml et apportez les mises à jour suivantes : *Commentez toutes les lignes relatives à traefik car nous allons créer un fichier traefik.yml global plus tard.
  2. Alt Text
    *Décommentez les lignes relatives à PhpMyAdmin (pma) afin que nous puissions l'utiliser pour importer notre base de données :Alt Text
  3. Dans le dossier web, créé dans le cadre de l'Ă©tape 3, clonez le dĂ©pĂŽt de votre base de code Drupal. Veuillez vous assurer que le code Drupal se trouve dans ce dossier lui-mĂȘme et non dans un sous-dossier.
  4. Dans le terminal, à l'intérieur du dossier créé à l'étape 1, exécutez la commande suivante pour démarrer les services :
make up

Configurer traefik

  1. CrĂ©ez un nouveau dossier, je recommande de le nommer traefik, et Ă  l'intĂ©rieur crĂ©ez un fichier traefik.yml, et le contenu du fichier devrait ĂȘtre ceci :
version: '3'
services:
  traefik:
    image: traefik:v2.0
    command: --api.insecure=true --providers.docker
    networks:
      - d8base
    ports:
      - '80:80'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
networks:
  d8base:
    external:
      name: d8base_default

Si vous avez plus de projets Ă  configurer, il vous suffit de les ajouter au traefik.yml, comme ceci :
Alt Text

  1. Dans le terminal, exécutez la commande suivante dans le dossier traefik :

docker-compose -f traefik.yml up -d

Les étapes pour WordPress

  1. Le processus est le mĂȘme que celui que nous avons suivi pour Drupal, la seule diffĂ©rence rĂ©side dans l'Ă©tape 2, oĂč nous devons cloner le Docker4Wordpress Ă  la place.

IMPORTANT : Assurez-vous que cette ligne n'est pas commentée : NGINX_SERVER_ROOT: /var/www/html/web

Notes :

  1. Vous pouvez importer la base de données depuis http://pma.d8base.docker.localhost/ remplacez d8base par le nom du dossier créé à l'étape 1
  2. Votre site devrait ĂȘtre accessible depuis http://d8base.docker.localhost/ remplacez d8base par le nom du dossier créé Ă  l'Ă©tape 1
  3. Assurez-vous que le port 80 de votre machine n'est pas utilisé par une autre application/site avant de suivre ce tutoriel.
  4. Drupal : Si vous avez besoin d'exécuter des commandes drush, composer ou drupal console, exécutez cette commande docker exec -it d8base_php /bin/bash et cd web remplacez d8base par le nom du dossier créé à l'étape 1
  5. Si vous avez besoin de rétrograder la version de composer à la version 1, exécutez ceci : composer self-update --1
  6. Vous devrez peut-ĂȘtre modifier le fichier /etc/hosts et ajouter une entrĂ©e comme celle-ci : 127.0.0.1 d8base.docker.localhost
  7. IMPORTANT : Chaque fois que docker est redémarré, vous devez exécuter docker-compose -f traefik.yml up -d depuis le dossier traefik.
  8. Drupal : Assurez-vous que les informations de la base de données sont correctes dans votre fichier settings.php. Le fichier .env contient ces informations, et les valeurs par défaut devraient ressembler à ceci :
$databases['default']['default'] = array (
  'database' => 'drupal',
  'username' => 'drupal',
  'password' => 'drupal',
  'prefix' => '',
  'host' => 'mariadb',
  'port' => '3306',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
  'driver' => 'mysql',
);