Générateur de Dockerfile — toutes les options

🏷️ Outils en ligne 100% Gratuit
Générateur Dockerfile Dockerfile En Ligne Docker Multi-Stage Docker Devops Conteneur Docker Dockerfile Nodejs Php Python Outil En Ligne De Génération De Dockerfile
🐳

Générateur de Dockerfile

🏗️ Image de base

📁 Configuration projet

🔨 Type de build

Sépare l'étape de build de l'image finale (image plus petite)

📦 Dépendances

Copie les fichiers de dépendances avant le code source
--production, --no-dev, etc.

⚙️ Variables d'environnement

🔑 Arguments de build (ARG)

🔒 Sécurité

Évite d'exécuter l'app en tant que root
--read-only au runtime (commentaire dans le Dockerfile)

💾 Volumes

❤️ Healthcheck

🏷️ Labels OCI / Docker

org.opencontainers.image.*

▶️ Commandes de démarrage

Dockerfile généré

                                        
                                    

Créez votre Dockerfile complet en ligne : choisissez le runtime (Node.js, PHP, Python, Go, Java…), activez le multi-stage build, configurez les variables d'environnement, HEALTHCHECK, ARG, volumes, utilisateur non-root et labels OCI. Export et téléchargement en un clic.

Pourquoi un Dockerfile ?

Un Dockerfile est un fichier texte qui décrit comment construire une image Docker. Il permet de reproduire un environnement identique partout : développement, CI/CD, production.

  • Reproductibilité : même image sur toutes les machines
  • Versioning : le Dockerfile vit avec le code dans Git
  • Automatisation : intégration CI/CD native
  • Isolation : dépendances encapsulées dans le conteneur

Instructions essentielles

InstructionRôleExemple
FROMImage de baseFROM node:20-alpine
WORKDIRRépertoire de travailWORKDIR /app
COPYCopier des fichiersCOPY . .
RUNExécuter une commandeRUN npm install
ENVVariable d'environnementENV NODE_ENV=production
ARGArgument de buildARG VERSION=1.0
EXPOSEPort documentéEXPOSE 3000
VOLUMEPoint de montageVOLUME ["/data"]
USERUtilisateur d'exécutionUSER appuser
HEALTHCHECKVérification de santéHEALTHCHECK CMD curl -f ...
ENTRYPOINTPoint d'entrée fixeENTRYPOINT ["node"]
CMDCommande par défautCMD ["server.js"]
LABELMétadonnéesLABEL version="1.0"

Multi-stage build

Le multi-stage build permet de séparer l'étape de compilation de l'image finale, réduisant considérablement la taille de l'image.

# Étape 1 : build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

# Étape 2 : image finale (légère)
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "dist/server.js"]
Gain typique : une image Node.js avec builder peut passer de ~800 MB à ~120 MB en utilisant le multi-stage build avec Alpine.

Bonnes pratiques

  • Une instruction par layer : ordonnez du moins au plus changeant
  • Copier les fichiers de dépendances en premier (package.json) pour profiter du cache
  • Ne jamais exécuter en root : créez un utilisateur dédié avec USER
  • Utilisez des images Alpine ou Slim pour réduire la surface d'attaque
  • Combinez les RUN avec && pour réduire le nombre de layers
  • Épinglez les versions (node:20.11-alpine) pour des builds reproductibles
  • Utilisez HEALTHCHECK en production pour l'orchestration
Rappel : EXPOSE ne publie pas le port — c'est uniquement de la documentation. La publication se fait avec docker run -p 8080:3000.

.dockerignore

Créez un fichier .dockerignore à la racine pour exclure les fichiers inutiles du contexte de build et éviter de copier des secrets :

node_modules/
.git/
.env
.env.local
*.log
dist/
coverage/
.DS_Store
Thumbs.db
*.md
docker-compose*.yml
.github/