// Logiciel / Outil

Docker

Compose pour le dev, BuildKit pour la prod. Reproductibilité et CI propre.

Catégorie
Logiciel / Outil
Expérience
4 ans
Site officiel
↗ www.docker.com

Docker permet à mes projets de tourner à l’identique sur ma machine, chez le client, et en CI. Pas d’« il marche chez moi », pas de PHP qui diverge, pas de base de données qui se contamine.

Mes usages Docker

  • Compose dev : un compose.yaml minimal avec PHP-FPM + MySQL + Mailpit + Redis. Démarrage docker compose up et c’est parti.
  • CI : pipelines GitHub Actions qui builent une image, lancent les tests dedans, et la publient en cas de succès.
  • Production : images multi-stage buildées avec BuildKit pour des tailles réduites (alpine + opcache + JIT pré-warmed).
  • One-shot tools : Symfony CLI, composer, npm — tout dans Docker pour ne polluer aucune machine.

Pratiques

  • Multi-stage builds : un stage builder (composer install dev + npm build) et un stage runtime minimal.
  • .dockerignore soigné : pas de vendor/, node_modules/, var/, .git/ dans l’image.
  • Layers cache optimisés : COPY composer.json composer.lock AVANT le code source pour réutiliser la couche d’install.
  • Healthchecks explicites pour Compose et orchestrateurs.

Limites assumées

Sur hébergement mutualisé (o2switch, OVH Web), Docker n’est pas dispo. J’utilise alors un workflow build-local + déploiement statique (assets compilés) + Composer optimisé en prod.


Besoin d’industrialiser une stack Docker ? Demande un devis.