Constructions multi-étapes

Docker : niveau intermédiaire

Mike Metzger

Data Engineering Consultant

Constructions monolithiques (single-stage)

  • Les images Docker classiques sont créées avec une seule commande FROM
  • Chaque ajout à l'image source augmente la taille et complique sa gestion
  • Imaginez une application à compiler avant usage
    • Vous pouvez ajouter tous les composants nécessaires, la compiler, puis configurer l'image finale
    • Cela laisse souvent du contenu superflu dans l'image même s'il n'est pas utilisé
FROM ubuntu
RUN apt update
RUN apt install gcc -y
...
RUN make
CMD ["data_app"]
Docker : niveau intermédiaire

Constructions multi-étapes

  • Les constructions multi-étapes utilisent plusieurs conteneurs
  • Comportent en général une ou plusieurs étapes de build
  • Les composants finaux sont copiés dans l'image finale
  • Les étapes de build sont ensuite supprimées automatiquement
    • Ce qui économise de l'espace et réduit la taille de l'image
  • Requièrent une syntaxe supplémentaire dans le Dockerfile
    • AS <alias>
    • COPY --from=<alias>
Docker : niveau intermédiaire

Exemple de construction multi-étapes

# Create initial build stage
FROM ubuntu AS stage1

# Install compiler and compile code RUN apt install gcc -y ... RUN make
# Start new stage to create final image FROM alpine-base
# Copy from first stage to final COPY --from=stage1 /data_app /data_app
# Run application on container start CMD ["data_app"]
Docker : niveau intermédiaire

Passons à la pratique !

Docker : niveau intermédiaire

Preparing Video For Download...