La nous allons voir plusieurs concept en même temps ! préparez le doliprane 1000mg 😼
Pour commencer simplement nous allons monter un Wordpress avec sa base de donnée qui va bien !
Wordpress :
Rendez-vous sur le docker hub de wordpress officiel !
https://hub.docker.com/_/wordpress
Un peu plus bas on vois une section Docker compose :
On vois plusieurs éléments, dont une image wordpress et une mysql.
Je vais copier ce code dans VSCode est vous le commenter.
# Version de docker compose utilisée
## Définition des services, un services sera un conteneur, une application par conteneur !s
## Définition du service wordpresss
## Image utilisée pour le conteneur, ici nous récupérons la dernière version de wordpresss
## Redémarrage du conteneur en cas de crash, redemarrage de l'hôte, etc...
## Définition du nom du conteneur, ici wordpress,
## l'hote ne connais pas le nom mais les autres conteneurs ouis
container_name : wordpress
## Exposition du port 80 du conteneur vers le port 8080 de l'hôtes
## Ici on déclare une liaison avec la base de données,
## pour s'assurer que le conteneur db est bien démarré avant le conteneur wordpress
## Nom du service sur lequel on dépend, ici db
## Définition des variables d'environnement pour le conteneur, ici nous définissons les informations de connexion à la base de données
## Nom de l'hôte de la base de données
## Nom d'utilisateur de la base de données
WORDPRESS_DB_USER : user-wordpress
## Mot de passe de l'utilisateur de la base de donnéess
WORDPRESS_DB_PASSWORD : password-wordpress
## Nom de la base de données
WORDPRESS_DB_NAME : wordpressdb
## Définition des volumes pour avoir des données persistante après le redémarrage
## En premier on indique le dossier de l'hôte qui sera monté dans le conteneur
## En second on indique le dossier du conteneur dans lequel on va monter le dossier de l'hôtes
## On peux voir cela comme un lien symboliques
- ./data_wps:/var/www/html
## Définition du service de la base de donnéess
## Image utilisée pour le conteneur, ici nous récupérons la dernière version de mysqls
## Redémarrage du conteneur en cas de crash, redemarrage de l'hôte, etc...s
## Définition du nom du conteneur, ici mysql
## Définition des variables d'environnement pour le conteneur, ici nous définissons les informations de connexion à la base de données
## Nom de la base de données
MYSQL_DATABASE : wordpressdb
## Nom d'utilisateur de la base de données
MYSQL_USER : user-wordpress
## Mot de passe de l'utilisateur de la base de données
MYSQL_PASSWORD : password-wordpress
## Définition du mot de passe root de la base de données
MYSQL_RANDOM_ROOT_PASSWORD : ' 1 '
## Définition des volumes pour avoir des données persistante après le redémarrage
## Création d'un disque virtuel 'db' pour stocker les données de la base de données
## on utilise un disque virtuel pour des raisons de performances avec les DB
## Définition des volumes
## Définition du volume 'db' qui sera utilisé par le service db
## Les {} sans arguments laisse docker choisir le nom du volume et gérer les différents options
Petit docker compose up, sans le D cette fois histoire de voir les logs en direct !
💡 Vous voyez les couches (layers) qui se télécharge ? C’est tout simplement chaques lignes du Dockerfile qui compose l’image !
Si on observe bien les logs on voit que le démarrage de wordpress ne se fait que lorsque que mysql est prêt ! merci l’option depends_on !
On fait un petit docker ps pour voir nos conteneur.
Ici on peux voir que nos conteurs sont bien lancé depuis X temps. On peux voir que wordpress accepte la connexion de toutes les IPs sur le port 8080 et renvoie dans le conteneur sur le port 80.
On aperçois aussi le port 3306 sur le conteneur mysql, pourtant nous avons pas indiqué d’argument ?
💡 C’est la commande EXPOSE dans Dockerfile ! vous vous rappelez ? Ça permet donc d’exposer le port aux autres conteneurs !
Ouvrez le votre navigateur et allez sur http://localhost:8080
Et voici notre Wordpress :
Continuez l’installation jusqu’a finir sur la page de connexion et ensuite le tableau de bord.
Maintenant nous allons rajouter un service à notre docker compose !
PhpMyAdmin va nous permettre de voir les tables de notre base de données et de la managé si besoin. (Attention ! Ne jamais utilise ce type de méthode en production !)
Voici le services à ajouter dans le docker compose :
## Définition du service phpmyadmin
## Image utilisée pour le conteneur, ici nous récupérons la dernière version de phpmyadmin
## Redémarrage du conteneur en cas de crash, redemarrage de l'hôte, etc...
## Définition du nom du conteneur, ici phpmyadmin
container_name : phpmyadmin
## Expostion du port 80 du conteneur vers le port 8000 de l'hôte
## Définition des variables d'environnement pour le conteneur, ici nous définissons les informations de connexion à la base de données
## Utilisateur de la base de données
- PMA_USER=user-wordpress
## Mot de passe de l'utilisateur de la base de données
- PMA_PASSWORD=password-wordpress
## Ici on déclare une liaison avec la base de données,
## pour s'assurer que le conteneur db est bien démarré avant le conteneur phpmyadmin
## Nom du service sur lequel on dépend, ici db
💡 Petit tips: on peut ajouter des services à chaud ! Faite un split de votre terminal si vous avez lancé comme moi sans l’argument d. faire un docker compose up et magie ! Aucun changement dans les services déjà présent donc pas de coupures ! et notre phpmyadmin est bien créé dans la foulée.
Maintenant sur localhost:8000 nous avons de quoi administrer plus facilement notre base de données !