Dockerfile Generator
Générateur interactif de Dockerfile avec bonnes pratiques et optimisations.
Base Image
Build Configuration
Runtime
Options
Dockerfile généré
Bonnes pratiques
Images de base recommandées
| Langage | Image Production | Image Build |
|---|---|---|
| Node.js | node:20-alpine |
node:20 |
| Python | python:3.12-slim |
python:3.12 |
| Go | gcr.io/distroless/static |
golang:1.22-alpine |
| Java | eclipse-temurin:21-jre-alpine |
eclipse-temurin:21-jdk |
| Rust | gcr.io/distroless/cc |
rust:1.75-alpine |
Optimisations
# Utiliser les build caches
RUN --mount=type=cache,target=/root/.npm npm ci
# Copier les fichiers de dépendances d'abord (meilleur cache)
COPY package*.json ./
RUN npm install
COPY . .
# Multi-stage pour réduire la taille
FROM node:20 AS builder
# ... build
FROM node:20-alpine AS runtime
COPY --from=builder /app/dist ./dist
Sécurité
# Ne jamais faire
RUN curl http://example.com/script.sh | sh # Dangereux!
USER root # Éviter
# Bonnes pratiques
USER node # Utilisateur non-root
RUN chmod 755 /app # Permissions minimales
Référence rapide
| Instruction | Description |
|---|---|
FROM |
Image de base |
WORKDIR |
Répertoire de travail |
COPY |
Copie fichiers (contexte → image) |
ADD |
Comme COPY + extraction tar/URL |
RUN |
Exécute commandes |
ENV |
Variables d'environnement |
ARG |
Arguments de build |
EXPOSE |
Documente le port |
USER |
Change l'utilisateur |
CMD |
Commande par défaut |
ENTRYPOINT |
Point d'entrée |
HEALTHCHECK |
Vérification santé |
LABEL |
Métadonnées |