Service en ligne 100% Gratuit Utilitaires Web AngularForAll

Générateur de Dockerfile — toutes les options

Generateur Dockerfile Dockerfile En Ligne Docker Multi-Stage Docker Devops Conteneur Docker Dockerfile Nodejs Php Python Outil En Ligne De Generation De Dockerfile

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.

🐳

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é

                                        
                                    

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/

Questions fréquentes

Selectionnez l'image de base (Node.js, Python, PHP, Go, Java...), configurez le port d'exposition, le repertoire de travail, les variables d'environnement, les instructions COPY et RUN, puis activez les options avancees (multi-stage build, healthcheck, utilisateur non-root). Le Dockerfile est genere instantanement.

Un build multi-stage utilise plusieurs instructions FROM dans un seul Dockerfile pour separer la phase de compilation de l'image finale. Par exemple, compiler une application Go dans une image build et copier uniquement le binaire dans une image alpine minimale. Cela reduit significativement la taille de l'image de production.

Par defaut, les conteneurs Docker s'executent en tant que root, ce qui est un risque de securite si un attaquant compromet le conteneur. L'option utilisateur non-root ajoute les instructions "RUN addgroup" et "RUN adduser" puis "USER" pour executer l'application avec des privileges limites.

Le HEALTHCHECK permet a Docker de surveiller l'etat de sante du conteneur. L'outil genere automatiquement la directive HEALTHCHECK avec une commande curl ou wget adaptee a votre application, l'intervalle de verification, le timeout et le nombre de retries avant de marquer le conteneur comme "unhealthy".

Partager