TECHNOLOGIES
Docker, nos environnements de développement
Docker conteneurise nos environnements de développement pour garantir que chaque développeur travaille dans des conditions identiques, quelle que soit sa machine. Un seul docker compose up suffit à démarrer un projet Symfony complet.
Cette fiche documente notre structure de services, nos conventions et les commandes courantes utilisées sur nos projets.
POURQUOI DOCKER
Ce qui en fait notre standard d'environnement
Docker est présent sur tous nos projets Symfony dès le premier jour. Voici pourquoi nous ne développons plus sans lui.
Environnement identique sur tous les postes
Avec Docker, chaque développeur dispose exactement du même environnement : même version de PHP, même version de MySQL, même configuration Nginx. Le classique "ça marche chez moi" disparaît.
Onboarding en une commande
Un nouveau développeur clone le projet et lance docker compose up. L'environnement complet est prêt en quelques minutes sans installer PHP, MySQL ou Nginx localement.
Isolation des services
PHP, base de données, cache Redis, serveur mail de test — chaque service tourne dans son propre conteneur. Pas de conflit de version entre projets, chaque projet a sa propre configuration.
Environnement de CI identique au dev
Le pipeline GitLab CI s'exécute dans le même conteneur Docker qu'en développement. Les tests PHPUnit et les analyses PHPStan tournent dans des conditions identiques à celles du poste du développeur — pas de surprises liées à l'environnement.
Environnement jetable et propre
Besoin de tester une migration de base de données ? On repart d'un conteneur vierge en quelques secondes. Pas de résidus, pas d'état persistant non maîtrisé qui fausse les tests.
Versionné avec le projet
Le docker-compose.yml et le Dockerfile vivent dans le dépôt Git. L'environnement évolue avec le code et chaque changement d'infrastructure est tracé et réversible.
NOTRE USAGE
Comment nous utilisons Docker chez SmartBooster
Notre configuration Docker suit une structure commune à tous les projets pour réduire la courbe d'apprentissage et faciliter la reprise.
Stack Symfony basée sur symfony-docker
Nos projets Symfony s'appuient sur notre template open source smartbooster/symfony-docker : PHP-FPM, Nginx et MySQL préconfigurés, prêts à cloner et démarrer en une commande.
Volumes pour la persistance
Les données de la base de données sont stockées dans un volume Docker nommé pour survivre aux redémarrages de conteneurs. Le code source est monté en bind mount pour le rechargement à chaud.
Variables d'environnement via .env
Les configurations sensibles (DSN base de données, clés API) transitent par les variables d'environnement. Le fichier .env.local est ignoré par Git.
Pour aller plus loin
Documentation utile
Stack PHP-FPM + Nginx + MySQL préconfigurée pour les projets Symfony SmartBooster.