Le Dockerfile Generator

À quoi sert cet écran

Le formulaire qui produit le Dockerfile : image de base, répertoire de travail, étapes de dépendances et de build, ports exposés et commande exécutée par le conteneur.

Avant de commencer

Pour faire ceci Il vous faut
Utiliser le générateur la permission de lecture Dockerfile de local-env

Ouvrir l’écran

Build › Image Builder, ou ouvrez un modèle depuis Tools › Templates Library.

Le Dockerfile Generator offre un contrôle complet sur la création de votre Dockerfile grâce à une interface de formulaire intuitive avec aperçu en direct. Que vous commenciez à partir de zéro ou d’un modèle, vous pouvez personnaliser tous les aspects.

📸 Capture d’ecran : Le générateur avec un formulaire complété et sa sortie. Repères : (1) l’image de base, (2) les étapes de dépendances, (3) les étapes de build, (4) la commande d’exécution, (5) le Dockerfile généré.

Disposition de l’interface

L’interface est divisée en deux panneaux :

┌────────────────────────────────────────────────────────────────────┐
│                                    │                               │
│   Formulaire de configuration      │      Aperçu Dockerfile        │
│                                    │                               │
│   - Base Image                     │      FROM node:20             │
│   - Environment Vars               │      WORKDIR /app             │
│   - Labels                         │      COPY package.json ./     │
│   - Working Directory              │      RUN npm install          │
│   - Files                          │      EXPOSE 3000              │
│   - Run Commands                   │      CMD ["npm", "start"]     │
│   - User                           │                               │
│   - Args                           │                               │
│   - Volume                         │                               │
│   - Port                           │                               │
│   - Entrypoint                     │                               │
│   - CMD                            │                               │
│                                    │                               │
│       [Valider le Dockerfile]      │                               │
└────────────────────────────────────┴───────────────────────────────┘

Options de configuration

Chaque section du formulaire correspond à une directive Dockerfile :

Section Directive Requis Description
Base Image FROM Oui L’image parent de votre conteneur
Environment Variables ENV Non Définir les variables d’environnement du conteneur
Labels LABEL Non Ajouter des métadonnées à votre image
Working Directory WORKDIR Non Définir le répertoire de travail pour les instructions
Files COPY Non Copier des fichiers de l’hôte vers le conteneur
Run Commands RUN Non Exécuter des commandes lors de la construction
User USER Non Définir l’utilisateur pour exécuter le conteneur
Arguments ARG Non Définir les variables au moment de la construction
Volume VOLUME Non Créer un point de montage pour les volumes externes
Port EXPOSE Non Exposer les ports du conteneur
Entrypoint ENTRYPOINT Non Configurer le point d’entrée du conteneur
CMD CMD Non Commande par défaut au démarrage du conteneur

Créer un Dockerfile

Base Image

Saisissez l’image parent (ex. node:20, python:3.11-slim, golang:1.21). Utilisez des tags de version spécifiques au lieu de latest pour des builds reproductibles. Envisagez les variantes slim/alpine pour des images plus petites.

Environment Variables

Ajoutez des paires clé-valeur via le bouton ”+ Add Environment Variable” (ex. NODE_ENV = production).

Labels

Ajoutez des métadonnées en paires clé-valeur via ”+ Add Label” (ex. maintainer = team@example.com).

Working Directory

Définissez le répertoire d’exécution des commandes suivantes (ex. /app).

Files (COPY)

Ajoutez des instructions de copie via ”+ Add File” :

Champ Description Exemple
Host Path Chemin source dans le contexte de construction package.json
Container Path Chemin de destination dans le conteneur ./
Option Flags COPY optionnels --chown=1000

Conseil : Copiez d’abord les fichiers de dépendances (package.json), puis le code source (.), pour exploiter la mise en cache des couches Docker.

Run Commands

Ajoutez des commandes de construction via ”+ Add Run Command” (ex. npm install). Enchaînez les commandes connexes avec && pour réduire les couches. Nettoyez les fichiers temporaires dans la même instruction RUN.

Options restantes

Champ Notes Exemple
Args Variables au moment de la construction VERSION=1.0.0
User Exécuter en tant que non-root pour la sécurité node, 1000
Volume Point de montage des données persistantes /data
Port Port écouté par votre application 3000
Entrypoint Point d’entrée du conteneur (format tableau JSON) "node", "server.js"
CMD Commande par défaut (format tableau JSON) "npm", "start"

Panneau d’aperçu en direct

Le panneau de droite se met à jour en temps réel à mesure que vous remplissez le formulaire.

Réorganisation des instructions

Glissez-déposez pour réorganiser les instructions et optimiser la mise en cache des couches. Directives réorganisables : LABEL, WORKDIR, USER, RUN, COPY. L’instruction FROM doit toujours rester en première position.

Conseil : Complétez d’abord tous les champs du formulaire, puis réorganisez si nécessaire.

Validation et analyse

  1. Vérifiez votre Dockerfile dans le panneau d’aperçu
  2. Cliquez sur “Validate Dockerfile”
  3. Un workflow GitHub Actions construit l’image et l’analyse avec Trivy

Résultats de l’analyse

Statut Signification
Validated Aucune vulnérabilité critique, sûr à utiliser
Not Validated Vulnérabilités trouvées nécessitant attention
Scan Failed L’analyse n’a pas pu se terminer (vérifiez la configuration)

Actions disponibles : Download Dockerfile, View Detailed Report, Cancel Scan.

Télécharger votre Dockerfile

Après la validation, cliquez sur “Download Dockerfile” dans le dialogue de résultats. Le fichier se télécharge sous le nom Dockerfile.

Scénario

Obtenir une image qui démarre, puis une image légère.

  1. Réglez d’abord l’image de base. Tout ce qui suit — gestionnaire de paquets disponible, shell, versions de bibliothèques — en découle, et la changer ensuite invalide l’essentiel de votre saisie.
  2. Renseignez les étapes de dépendances et de build dans l’ordre d’exécution. Le générateur les écrit dans l’ordre donné ; il ne raisonne pas sur le cache à votre place.
  3. Réglez les ports exposés sur ce que l’application écoute réellement, pas sur ce que vous prévoyez qu’elle écoute plus tard.
  4. Générez et construisez localement. C’est le premier moment où quoi que ce soit est vérifié : le formulaire ne compile pas.
  5. Une fois que cela démarre, revoyez l’ordre des couches. Dépendances avant sources : c’est ce qui rend les reconstructions rapides, et c’est le changement au plus fort effet.
  6. Analysez l’image — voir Analyse de sécurité.

En cas de problème

Symptôme Cause Comment vérifier Solution
Le build échoue sur un paquet absent L’image de base ne le contient pas L’image de base Ajoutez une étape d’installation, ou choisissez une base plus complète
Les reconstructions sont lentes Les sources sont copiées avant les dépendances L’ordre des étapes Placez les dépendances en premier
Le conteneur démarre puis s’arrête La commande est erronée ou non persistante Le champ de commande Pointez-la vers le processus qui reste actif
Le port est ouvert mais rien ne répond Le port exposé diffère de celui écouté La configuration applicative Alignez-les

Pour aller plus loin