Écrire un Dockerfile

Les instructions FROM, WORKDIR, COPY, ADD, RUN, ENV, ARG, EXPOSE, USER, CMD et ENTRYPOINT ; le contexte de construction et .dockerignore ; une couche par instruction, le cache de construction et docker build -t.

  • 30 cartes
  • 6 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Les étapes
  5. Mises en situation
  6. Comprendre

Quelques cartes du deck

  • Dockerfile : de quoi s'agit-il ?

    Voir la réponse

    Fichier texte qui décrit, instruction par instruction, comment construire une image à partir d'une image de base.

    Il rend la construction reproductible et versionnable : quiconque lance docker build obtient la même image, au lieu de dépendre des gestes de la personne qui l'a faite.

  • Quelle différence entre COPY et ADD ?

    • ADD sait aussi décompresser une archive locale et télécharger une URL
    • COPY ne copie que des fichiers isolés, alors qu'ADD copie aussi les dossiers
    • COPY s'exécute au démarrage du conteneur, ADD à la construction de l'image
    • ADD ajoute un fichier à l'image en laissant l'original dans le contexte, COPY le déplace
    Voir la réponse

    ADD sait aussi décompresser une archive locale et télécharger une URL

    Les deux copient depuis le contexte vers l'image, dossiers compris. ADD a deux comportements en plus, parfois surprenants ; on préfère COPY quand on ne veut que copier.

  • L'instruction … s'exécute à la construction de l'image, alors que … définit la commande lancée au démarrage du conteneur.

    Voir la réponse

    L'instruction RUN s'exécute à la construction de l'image, alors que CMD définit la commande lancée au démarrage du conteneur.

    RUN npm ci installe les dépendances une fois pour toutes dans une couche ; CMD ["node", "server.js"] ne s'exécute qu'au docker run.

  • Couche d'image : de quoi s'agit-il ?

    Voir la réponse

    Ensemble de modifications du système de fichiers produit par une instruction de construction, empilé sur les précédentes.

    Les instructions RUN, COPY et ADD créent chacune une couche. Les couches sont en lecture seule et partagées entre images, ce qui économise le téléchargement et le disque.

  • Un Dockerfile Node qui profite du cache : quelle étape vient après « FROM node:24-alpine » ?

    • WORKDIR /app
    • COPY package*.json ./
    • RUN npm ci
    • COPY . .
    Voir la réponse

    WORKDIR /app

    L'image de base d'abord, puis le dossier de travail, puis ce qui change rarement (dépendances), puis ce qui change souvent (le code), et la commande de démarrage en dernier.