.dockerignore
Comme .gitignore, il exclut du contexte de build ce qui ne doit pas entrer dans l'image (accélère et allège).
# .dockerignore
target/
build/
.git/
.env
node_modules/
Des images légères
- Images de base minces (
-jreplutôt que-jdk, variantes-alpinequand c'est adapté). - Multi-stage (chapitre 3) : ne garder que l'artefact final.
- Ordonner les instructions pour profiter du cache de couches.
- Épingler les versions (
mongo:7, pasmongo:latest) pour la reproductibilité.
Durcir (passerelle Cyber)
- Aucun secret dans l'image ni dans le dépôt : variables d'environnement /
.envignoré. - Ne pas exposer de ports inutiles ; garder la base interne.
- Exécuter en utilisateur non-root dans le conteneur quand c'est possible (
USER). - Scanner les images (
docker scout) pour les vulnérabilités connues. - Mettre à jour les images de base régulièrement.
Registre & mise en production
On pousse les images sur un registre (Docker Hub, GitHub Container Registry) puis on déploie la stack sur un serveur.
docker tag fioul-api:1.0 ghcr.io/<compte>/fioul-api:1.0
docker push ghcr.io/<compte>/fioul-api:1.0
# sur le serveur : docker compose pull && docker compose up -d
Bilan du parcours Docker
Ajoute un .dockerignore, allège l'image de l'API (multi-stage), garde la base interne et les secrets hors du dépôt. Livrable : un compose.yaml qui monte les 3 couches d'une commande, reproductible sur n'importe quel poste — l'idéal pour installer le projet en TP et pour la soutenance.
🎉 Parcours Docker terminé
Du conteneur isolé jusqu'à l'orchestration des trois couches, tu sais désormais empaqueter et lancer tout le projet Fioul Groupé avec Docker Compose. C'est le liant qui fait tourner MongoDB, Spring et le front ensemble, partout pareil. Retour au portail ou au guide API.
.dockerignore+ images légères + versions épinglées.- Sécurité : pas de secret, base interne, non-root, scan d'images.
- Registre +
compose pull/uppour déployer, automatisable en CI.