Docker Compose et CI/CD : rendre une livraison reproductible
Du poste local à la pipeline, les mêmes services et contrôles réduisent les écarts entre environnements.
Décrire l'application comme un ensemble de services
Une application web dépend souvent d'une base, parfois d'un cache ou d'un worker. Docker Compose décrit ces services, leurs réseaux et leurs volumes dans un fichier partagé. Cela rend l'environnement plus facile à démarrer, à relire et à transmettre à un autre développeur.
Le fichier Compose ne doit toutefois pas devenir un coffre à secrets. Je fournis des noms de variables et des exemples sans identifiants réels. Pour la base, je distingue les données persistantes du conteneur lui-même ; détruire puis recréer un conteneur ne devrait pas effacer les données de travail.
Faire de la pipeline un contrôle utile
Une pipeline simple peut exécuter, dans cet ordre, l'installation reproductible des dépendances, l'analyse statique, les tests, puis le build. Le déploiement n'arrive qu'après ces contrôles. Si une étape échoue, le retour doit indiquer quelle commande a échoué, sans exposer les secrets.
Je vérifie aussi que le service démarre réellement et répond à une vérification de santé. Un build réussi ne prouve pas qu'une connexion à la base, une variable d'environnement ou une migration fonctionne en production.
À retenir : un environnement reproductible rend les erreurs plus faciles à comprendre ; il ne remplace pas la vérification du système une fois déployé.
Pour aller plus loin : Docker Compose.