Docker Compose V2

Bonjour,

En faisant quelques recherches sur je ne sais même plus quoi, je suis tombé totalement par hasard sur la news qui indiquait que docker compose était maintenant disponible en version 2. Whaaaattttt !?? Je dois vous avouer que pour moi c'est passé totalement sous les radars et que je n'ai rien lu sur les forums d'auto hébergement ou je traine. Rien de dramatique, la v1 ne va pas disparaitre demain vu qu'elle est supportée au moins jusqu'à Avril 2023.

Quel est l'avantage de cette version 2 ? Bah pour le  bidouilleur du dimanche, quasiment rien. De ce qui est expliqué, la version 2 a été construite en Go avec un focus pour le déploiement via des API sur le cloud. Pour faire simple, pour concurrencer Kubernetes qui semble être devenu le standard pour Docker dans l'industrie. C'est plutôt une bonne chose car ça devrait pérenniser docker compose (perso j'avais des doutes sur sa viabilité à moyen terme vu l'importance qu'a pris K8s). Kubernetes qui semble être un outil formidable pour les déploiements multiples est d'une inutilité totale pour une utilisation sur son propre serveur avec un seul node. Ca revient à utiliser une bombe atomique pour s'occuper d'un moustique.

Bon alors comment on installe la version 2 ? La version du package de compose est disponible sur github. A noter que compose v2 est installé automatiquement avec docker CLI. Pour Alpine, j'ai checké mais il  n'y a pas de package disponible tout seul pour le moment donc j'ai installé docker cli.

apk add --upgrade docker-cli-compose

Pour voir si vous êtes bien passé en version 2, vous pouvez utiliser cette commande :

docker compose version

Si vous voulez maintenant enlever le package de la version 1 il faut taper :

apk del docker-compose

Voila, c'est propre, clean et déjà terminé ! Alors quels sont les changements majeurs. Il faut maintenant enlever le "-" pour lancer un docker. Ca donne ça:

docker compose up -d

C'est trop bien ! Mouais super... Soyons honnête pour le péquin moyen, ça ne va pas changer la vie. A noter que vous pouvez maintenant enlever la ligne "version: "3.9"" de votre fichier yaml.

Deux commandes sympa que vous pouvez maintenant utiliser pour lister vos containers (la première indique juste le nombre de containers qui tournent, la deuxième produit un listing détaillé des containers):

docker compose ls
docker compose ps

J'ai gardé le meilleur pour la fin. Le killer feature qui, à mon avis, va être inutile pour beaucoup de gens mais qui, je trouve, est super pratique. Vous pouvez maintenant utiliser docker compose sans avoir de fichier yaml disponible dans le répertoire ou vous êtes. Ca permet de modifier des répertoires / fichiers et relancer les containers sans avoir besoin de faire des changements (relous) de répertoire en ligne de commande. Pour cela il suffit de lancer le docker compose avec le nom du projet qui va bien :

docker compose -p votrenomdeprojet up -d

@+