# 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 des réseaux sur lesquels le conteneur sera connecté
## Définition du réseau frontend_wps
## Définition du réseau backend_wps
## 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
- ./data_db:/var/lib/mysql
## Définition des réseaux sur lesquels le conteneur sera connecté
## Définition du réseau backend_wps
## Définition du service de la base de donnéess pour glpi
## Image utilisée pour le conteneur, ici nous récupérons la version 8.0 de mysql
## Redémarrage du conteneur en cas de crash, redemarrage de l'hôte, etc...
## Définition du nom du conteneur, ici mysql_glpi
container_name: mysql_glpi
## Volumes pour avoir des données persistante après le redémarrage
- ./data_db_glpi:/var/lib/mysql
## Définition des variables d'environnement pour le conteneur, ici nous définissons les informations de la base de données
## Nom de la base de données
## Nom d'utilisateur de la base de données
## Mot de passe de l'utilisateur de la base de données
MYSQL_PASSWORD: glpi-password
## Définition du mot de passe root de la base de données
MYSQL_RANDOM_ROOT_PASSWORD: '1'
## Définition des réseaux sur lesquels le conteneur sera connecté
## Définition du réseau backend_glpi
## Définition du service de glpi
## Image utilisée pour le conteneur, ici nous récupérons la dernière version de glpi
image: elestio/glpi:latest
## Redémarrage du conteneur en cas de crash, redemarrage de l'hôte, etc...
## Définition du nom du conteneur, ici glpi
## Exposition du port 80 du conteneur vers le port 8081 de l'hôte
## Définition des volumes pour avoir des données persistante après le redémarrage
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- ./data_glpi/:/var/www/html/glpi
## Définition des variables d'environnement pour le conteneur, ici nous définissons les informations de timezone
## Définition des réseaux sur lesquels le conteneur sera connecté
## Définition du réseau frontend_glpi
## Définition du réseau backend_glpi
## Définition du service de l'application react
## Build de l'image à partir du Dockerfile
## Définition du contexte de build, le répertoire dans lequel se trouve le Dockerfile
## Définition du nom du Dockerfile
## Définition du nom du conteneur, ici react-demo
container_name: react-demo
## Redémarrage du conteneur en cas de crash, redemarrage de l'hôte, etc...
## Exposition du port 80 du conteneur vers le port 80 de l'hôte
## Définition des réseaux sur lesquels le conteneur sera connecté
## Définition du réseau frontend_react
# Définition du service uptime-kuma
# Spécifier l'image Docker à utiliser pour le service.
image: louislam/uptime-kuma:1
# Garder le conteneur en cours d'exécution tout le temps. Il redémarrera automatiquement en cas d'échec ou de redémarrage du Docker daemon.
# Publier le port 3001 du conteneur sur le port 3001 de la machine hôte, permettant l'accès externe à l'application.
# Définir les volumes pour persister les données. Le volume 'uptime-kuma' est monté dans '/app/data' dans le conteneur.
- ./uptime-kuma:/app/data
# Définir des réseaux sur lesquels le conteneur sera connecté, ici tous car c'est la supervision.
# Définition des réseaux pour la création des réseaux lors du démarrage du docker-compose
# Définition du réseau frontend_glpi
# utilisation du driver bridge
# Définition du réseau backend_glpi
# utilisation du driver bridge
# Définition du réseau frontend_wps
# utilisation du driver bridge
# Définition du réseau backend_wps
# utilisation du driver bridge
# Définition du réseau frontend_react
# utilisation du driver bridge
# Définition du réseau frontend_uptime
# utilisation du driver bridge