Une série en huit parties retraçant la migration d’une plateforme de microservices Symfony de Docker Compose vers Kubernetes, à travers le prisme de la méthodologie twelve-factor. Chaque article isole une catégorie de problème — stockage, secrets, logs, dépendances de services, parité d’environnement CI, cache distribué, probes de readiness, gouvernance du schéma — et le lit à travers les facteurs twelve-factor qui s’appliquent.
Onze sur douze
Le composer.json de chaque service avait ça dans sa section post-install-cmd : "post-install-cmd": [ "bin/console cache:clear --env=prod", "bin/console doctrine:migrations:migrate --no-interaction" ] post-install-cmd s’exécute pendant composer install, qui dans le Dockerfile de production tourne au moment du build de l’image. Il n’y a pas de base de données disponible pendant un build Docker. La commande de migration échouait silencieusement, se connectait à rien, ou était ignorée par Doctrine faute de schéma à comparer. Dans tous les cas, elle ne migrait rien. ...