Lier deux conteneurs

A la découverte de Docker partie 8

Wordpress fonctionnel

Si tu es développeur front-end, que tu utilises énormément WordPress et que te tâtes un peu à utiliser Docker, je pense que ce qui va suivre va énormément te plaire.

Dans cet article, je vais t’expliquer comment lier un conteneur MySQL à un conteneur WordPress pour rendre le tout fonctionnel, oui Monsieur !

Attention, cette technique n’est toutefois plus recommandée, je t’expliquerai pourquoi dans l’article suivant. Mais ça me paraît important de te montrer la base et c’est l’une des étapes que j’ai suivie lors de ma découverte.

Conteneur MySQL

En premier lieu, je vais créer un conteneur MySQL. Rien de bien sorcier sauf qu’en plus des options habituelles, je vais rajouter des variables d’environnement via le drapeau -e. Elles vont me permettre de spécifier les paramètres pour le MySQL, comme le login et le mot de passe par exemple.

Voici les différents éléments qui constituent la commande :
-e XXX=yyy j’utilise plusieurs variables d’environnement pour bien configurer MariaDB
-v xxx:yyy pour la création du volume (j’ai créé un répertoire DB dans mon dossier de travail)
--name wordpressdb donne le nom « wordpressdb » au conteneur afin de le manipuler plus facilement
-d lance le conteneur en tâche de fond
-p 33065:3306 je dis que le port 3306 de la DB est rendu sur le port 33065 de ma machine
mariadb c’est le nom de l’image

Les informations sur l’image et les différentes variables d’environnement sont disponibles ici.

docker run -e MYSQL_ROOT_PASSWORD=123 -e MYSQL_DATABASE=wordpress_db -v /Users/golendercaria/Desktop/docker_wordpress/DB:/var/lib/mysql --name wordpressdb -d -p 33065:3306 mariadb

Et pour vérifier que le base de données est fonctionnelle et disponible, je tente carrément de me connecter dessus depuis l’extérieur du conteneur et ça marche.

mysql -h 0.0.0.0 -P 33065 -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.13-MariaDB-1:10.3.13+maria~bionic mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

--link

Maintenant que le conteneur MySQL est prêt, je crée un nouveau conteneur WordPress. Pour le lier à la DB, je vais utiliser l’option –link.

Les options :
-e me permet de spécifier des variables d’environnement relatives aux informations de connexion à la DB
-p 8080:80 je dis que le port 80 du webserver est rendu sur le port 8080 de ma machine
-v xxx:yyy pour la création du volume
–link wordpressdb:mysql c’est l’option qui permet de lier les deux conteneurs, elle prend le nom de l’image de la DB : l’alias
--name wordpress je donne un nom à mon conteneur
-d lance le conteneur en tâche de fond
wordpress c’est le nom de l’image

Les informations sur l’image et les différentes variables d’environnement sont disponibles ici.

docker run -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=123 -e WORDPRESS_DB_NAME=wordpress_db -p 8080:80 -v /Users/golendercaria/Desktop/docker_wordpress/SITE:/var/www/html --link wordpressdb:mysql --name wordpress -d wordpress

Résultat

Et maintenant, si je me rends sur l’URL localhost:8080, je peux voir que mon conteneur WordPress est fonctionnel et qu’il a bien été lié à la DB car il me lance la page de configuration du site (donc après le test de disponibilité de la DB).

Lancer deux commandes pour starter un WordPress, c’est plutôt pas mal !

28/07/2019

Yann Vangampelaere - nouslesdevs -

Sinon jete un coup d’oeil aux autres catégories

Ma boîte aux lettres

Tu veux me demander quelque chose ?