Dockerfile gabarit complet
Dockerfile
Explications ligne par ligne
Stage 1 : Dépendances (deps)
Stage 2 : Build (build)
Stage 3 : Production (production)
Variantes par langage
- Node.js (par défaut)
- Python
- Rust
Le gabarit ci-dessus s’applique tel quel. Assurez-vous que votre
package.json contient les scripts build et que le point d’entrée compilé est bien dist/index.js.Bonnes pratiques
Cache des layers
Copiez toujours les fichiers de dépendances (package.json, requirements.txt, Cargo.toml) avant le code source. Cela permet à Docker de réutiliser le cache des installations quand seul le code change.
Minimisation de l'image
L’image finale ne contient que le runtime et les artefacts compilés. Pas de sources, pas de git, pas de devDependencies. L’image passe typiquement de 1.2 Go à ~150 Mo.
Sécurité non-root
L’utilisateur
nodejs (uid 1001) n’a pas les droits root. Même en cas d’exploitation d’une vulnérabilité dans l’application, l’attaquant est confiné.Healthcheck natif
Le healthcheck HTTP intégré évite les dépendances externes (curl, wget) et fonctionne avec le runtime Node.js déjà présent.