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.

Docker

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

smartbooster/symfony-docker — notre template Docker open source

Stack PHP-FPM + Nginx + MySQL préconfigurée pour les projets Symfony SmartBooster.