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 :
- Docker installé.
- Connaissances de base de git.
- Ătre familier avec le terminal.
- 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 :
- 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.
- 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 .
- 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.
- Supprimez le fichier docker-compose.override.yml et votre structure de fichiers devrait ressembler Ă ceci :
- 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
- 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.
*DĂ©commentez les lignes relatives Ă PhpMyAdmin (pma) afin que nous puissions l'utiliser pour importer notre base de donnĂ©es :- 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.
- 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
- 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 :
- Dans le terminal, exécutez la commande suivante dans le dossier traefik :
docker-compose -f traefik.yml up -d
Les étapes pour WordPress
- 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 :
- 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
- Votre site devrait ĂȘtre accessible depuis http://d8base.docker.localhost/ remplacez d8base par le nom du dossier créé Ă l'Ă©tape 1
- Assurez-vous que le port 80 de votre machine n'est pas utilisé par une autre application/site avant de suivre ce tutoriel.
- 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
etcd web
remplacez d8base par le nom du dossier créé à l'étape 1 - Si vous avez besoin de rétrograder la version de composer à la version 1, exécutez ceci :
composer self-update --1
- Vous devrez peut-ĂȘtre modifier le fichier /etc/hosts et ajouter une entrĂ©e comme celle-ci :
127.0.0.1 d8base.docker.localhost
- IMPORTANT : Chaque fois que docker est redémarré, vous devez exécuter
docker-compose -f traefik.yml up -d
depuis le dossier traefik. - 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',
);