Ce guide décrit les étapes pour utiliser Docker Compose.
Si ce n'est pas déjà fait, exécutez les commandes suivantes :
docker network create my_network
docker volume create mysql
Ouvrez le fichier compose.yml et remplacez par le mot de passe souhaité.
Pour lancer les services, utilisez :
docker compose up
Pour démarrer en arrière-plan, utilisez :
docker compose up -d
Pour lancer Docker Compose avec suivi des modifications en temps réel, utilisez :
docker compose up --watch
Ce document explique comment construire et exécuter des conteneurs Docker pour différentes cibles (init, web, bdd, api) tout en configurant un réseau Docker et des volumes pour les bases de données.
Chaque commande suivante construit une image Docker spécifique pour différentes cibles dans votre application.
docker --debug build --target init . -t init
- Cette commande construit l'image Docker cible
init
en mode débogage, étiquetéeinit
.
docker --debug build --target web . -t web
- Cette commande construit l'image cible
web
pour l'application web, en mode débogage.
docker --debug build --target bdd --build-arg MYSQL_PAS=<custom password> . -t bdd
- Ici, l'image Docker pour la base de données (
bdd
) est construite. L'argument de constructionMYSQL_PAS
permet de passer un mot de passe personnalisé pour MySQL.
docker --debug build --target api . -t api
- Cette commande construit l'image Docker pour l'API avec le tag
api
.
Avant de lancer les conteneurs, nous créons un réseau Docker pour permettre la communication entre les conteneurs et un volume pour persister les données de la base de données.
docker network create my_network
- Crée un réseau Docker nommé
my_network
. Les conteneurs dans ce réseau peuvent se connecter et communiquer entre eux.
docker volume create mysql
- Crée un volume Docker nommé
mysql
qui sera utilisé pour stocker les données de la base de données MySQL de manière persistante.
Les commandes suivantes lancent les conteneurs pour l'application Web, la base de données et l'API.
docker run --rm -d --network my_network -e MYSQL_PASSWORD=<custom password> -e MYSQL_ROOT_PASSWORD=<custom password> -p 3306:3306 -v "mysql:/var/lib/mysql" --name bdd bdd
-
Cette commande lance un conteneur pour la base de données MySQL (
bdd
) dans le réseaumy_network
, avec les mots de passe MySQL spécifiés dans les variables d'environnement. Le port3306
de la machine hôte est mappé au port3306
du conteneur. Le volumemysql
est monté pour persister les données dans/var/lib/mysql
. -
Il faudra modifier les fichiers fichier lecture_json_et_ecriture_BDD ligne 54-56 pour l'api et /web/conf/bdd.php pour la vue web si les variables d'env sont pas bien mis
docker run --rm -d --network my_network -p 80:80 -e MYSQL_PASSWORD=<custom password> --name web web
- Lance le conteneur
web
dans le réseaumy_network
. Le port80
de la machine hôte est mappé au port80
du conteneur. Le conteneur est supprimé automatiquement après son arrêt (--rm
) et fonctionne en arrière-plan (-d
).
docker run --rm -d --network my_network -e MYSQL_PASSWORD=<custom password> --name api api
- Lance le conteneur
api
dans le réseaumy_network
, en arrière-plan, avec le nomapi
.
Avec ce guide, vous êtes en mesure de créer, configurer et exécuter des conteneurs Docker pour un environnement multi-services.