Plusieurs sites sous WordPress sous docker avec docker-compose, nginx-proxy et leur propre base de données

Alors voilà, depuis le début du mois, dans l’objectif de migrer le blog (entre autre), j’ai passé une quinzaine d’heures à chercher un moyen d’utiliser docker-compose et l’image nginx-proxy pour pouvoir rendre disponible plusieurs sites sous WordPress. C’est simple, mais il était impossible de trouver cette simple solution sur le web. Les tutoriels existants (utilisant l’image officielle de WordPress) créent une erreur 503 sur l’un des sites. Certaines solutions alternatives ne sont plus maintenues tandis que d’autres ne permettent pas l’utilisation d’un conteneur séparé pour la base de données. Enfin, quelques-unes fonctionnent comme je veux, mais nécessitent la modification de plusieurs fichiers de configuration or je souhaite passer le moins de temps possible à faire de la maintenance. Il me faut donc une solution simple.

Bref, voici le docker-compose.yml fonctionnel (l’image pour WordPress utilise php7, certains modules pourraient donc ne pas fonctionner) :

Il reste deux petites choses à faire. Déjà mettez le code de WordPress dans ./wp1data/htdocs et ./wp2data/htdocs. Ensuite, faites chown -R 100:101 htdocs/ pour chaque dossier htdocs. Enfin, après un docker-compose up -d ,  allez sur wp1.localhost et wp2.localhost avec votre navigateur (oui je détaille des étapes évidentes).

Pour le nom de la base de données, l’identifiant et le mot de passe entrez les données correspondante du fichier docker-compose.yml (MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD).
Pour l’hôte de la base de données de wp1 entrez uniquement l’adresse ip 172.17.0.1 (si vous rajoutez le port 3306, qui est le port par défaut, allez savoir pourquoi cela ne fonctionnera pas) et pour l’hôte de la base de données de wp2 entrez 172.17.0.1:3307.

Et voilà, vous devriez avoir deux instances de WordPress sous docker.

Plusieurs sites sous WordPress sous docker avec docker-compose, nginx-proxy et leur propre base de données par La Réponse est 42 est sous Licence Creative Commons Internationale Attribution-Partage à l'identique 4.0.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *