Numérobis, architecte

Qu’est ce que DockerBis et à quels besoins répond-il ?

Tout d’abord, il correspond à mes besoins et c’est déjà pas mal. 🤪

Plus sérieusement, depuis que je développe, 90% de ce que je fais est lié à une base de données. Et le problème que je rencontre le plus souvent vient des différents environnements sur lequel mon code est déployé : Prod, Préprod, Intégration, Poste de dev, etc.

En effet, comme une appli est tout sauf figée, le schéma de la base est appelé à évoluer.

Des tables ou des colonnes apparaissent et / ou disparaissent.

Comme je travaille en Java avec un ORM, si je lance une appli qui fait référence à un élément de base qui n’existe pas, le démarrage plante.

Et j’imagine que ça peut faire ça dans d’autres technos.

La solution que j’ai trouvé est d’utiliser Docker pour conteneuriser mes bases.

Une même image mais des conteneurs alimentés depuis des backups des différents environnements.

Il me suffit alors de démarrer le conteneur correspondant à la version qui m’intéresse et mon appli n’y voit que du feu : elle pointe toujours sur la même adresse et le même port ! 🙈

Et je me suis demandé : Pourquoi ne pas créer une appli, idéalement sous la forme d’une CLI, qui permette de créer un nouveau conteneur à partir d’un existant en modifiant juste quelques détails comme les mappings ?

Donc, on prend un conteneur comme modèle, on saisit ce qui change par rapport à lui et en quelques actions, on a copié les éléments, arrêté le modèle s’il était en cours d’exécution, créé et démarré le nouveau conteneur.

Parlons un peu techno…

Etant un javaiste intégriste, j’ai cherché comment faire tout ça en Java.

Je suis donc parti sur :

Le projet en est à ses débuts et son ébauche peut être trouvée à cette adresse

Bien évidemment, tout conseil ou toute aide est la bienvenue