Docker compose

En assistant à une présentation à Devoxx France, j’ai pû voir docker-compose en action.
J’étais passé à côté mais docker-compose permet de faire ce que j’ai fait de façon artisanale dans les scripts startAll.sh et stopAll.sh de mon application demo (session-webapp).

J’ai donc mis à jour les sources pour tester cette fonctionnalité.

Il faut dans un premier temps définir un fichier docker-compose.yml qui va décrire nos services.

Pour faire simple, je définis une image haproxy, 2 webapps et 1 backend. Et j’indique les liens entre container (links).

Pour lancer, tous les containers, il faut juste taper:

Cette commande va builder et lancer les containers qui ne sont pas déjà lancé.

Pour arrêter, il faut taper:

Le service va démarrer ou arrêter d’un seul coup tous les services décrit dans le fichier.yml. Cela peut être pratique dans une architecture fortement distribuée.
Il va aussi exposer automatiquement les ports entre containers qui sont dépendant les uns des autres.

Une option intéressante de docker-compose est la fonction scale qui permet de provisionner facilement une application. Je reviendrais sur cette fonctionnalité sans un prochain article.

Les sources de l’exemple sont ici.