Docker - 6.5 Solution de l'exercice Docker Compose
Cette leçon corrige l'exercice précédent. Elle montre comment écrire un fichier Docker Compose avec Drupal et PostgreSQL, puis vérifier le site dans le navigateur. Elle se termine par le nettoyage des volumes.
Écrire le fichier
Le fichier se nomme docker-compose.yml et utilise la version 2 de Compose. Il contient deux services : Drupal et PostgreSQL.
Le service Drupal utilise l'image officielle et expose le port 80. Le service PostgreSQL n'expose aucun port, car les deux services partagent le même réseau Docker.
Les volumes
Pour le point supplémentaire, ajoutez une section de volumes si vous utilisez des volumes nommés. Vous pouvez reprendre les exemples de la documentation de l'image sur Docker Hub.
Les volumes permettent de conserver les données entre deux lancements.
Lancer, configurer et nettoyer
Lancez la stack avec docker compose up, puis ouvrez localhost dans le navigateur. Suivez l'assistant de configuration et renseignez le nom du site.
Pour nettoyer, arrêtez la stack avec la commande suivante. L'option -v supprime aussi les volumes, sinon ils sont conservés.
Pendant la configuration, les journaux de démarrage des services s'affichent en arrière-plan. Ils confirment que tout a bien été lancé.
docker compose up
docker compose down -v
En résumé
La solution utilise deux services : Drupal sur le port 80, et PostgreSQL, sans port publié. Les volumes nommés conservent les données. La commande down avec l'option -v arrête la stack et supprime les volumes.
Points clés
- Le fichier utilise la version 2 de Compose.
- Le service Drupal expose le port 80.
- Le service PostgreSQL reste accessible seulement dans le réseau Docker.
- Les volumes nommés conservent les données.
- docker compose down -v supprime aussi les volumes.
Questions fréquentes
Pourquoi PostgreSQL n'a-t-il pas de port publié ?
Les services d'un même fichier Compose partagent un réseau. Drupal atteint PostgreSQL sans ouvrir de port vers l'extérieur.
Que fait l'option -v de la commande down ?
Elle supprime les volumes, en plus d'arrêter et de retirer les conteneurs. Les données conservées dans ces volumes sont alors effacées.
Quelle commande lance le site ?
La commande docker compose up démarre les services. Le site est ensuite accessible sur localhost dans le navigateur.