Retour au cours

Leçon 10 : Copie du code et définition du répertoire de travail

Docker, de zéro à héros : Le cours complet sur la conteneurisation pour débutants

Leçon 10 : Copie du code et définition du répertoire de travail

Pour construire une image pour une application réelle, nous devons copier notre code dans le système de fichiers de l'image et définir où notre application doit s'exécuter.

1. WORKDIR (Répertoire de Travail)

L'instruction WORKDIR définit le répertoire de travail actuel pour les instructions suivantes (RUN, CMD, ENTRYPOINT, COPY). Si le répertoire n'existe pas, Docker le créera.

dockerfile

Bonne pratique : Créer un répertoire dédié pour l'application

WORKDIR /app

Les commandes RUN subséquentes s'exécuteront maintenant à l'intérieur de /app

RUN pwd

Résultat : /app

2. COPY (Copie de Fichiers)

L'instruction COPY copie des fichiers ou des répertoires du contexte de construction (votre machine locale) dans le système de fichiers de l'image.

Syntaxe : COPY <source> <destination>

Exemple : Conteneurisation d'une Application Node.js

Supposons que vous ayez un package.json et un fichier serveur (server.js).

dockerfile FROM node:20-alpine

1. Définir le répertoire de travail

WORKDIR /usr/src/app

2. Copier d'abord les fichiers de dépendance (pour l'optimisation du cache des couches !)

Nous copions package*.json séparément, de sorte que si seul le code change,

l'étape coûteuse 'npm install' reste en cache.

COPY package*.json ./

3. Installer les dépendances

RUN npm install

4. Copier le reste du code de l'application

COPY . .

5. Définir le point d'entrée de l'application

CMD ["node", "server.js"]

Différence entre COPY et ADD :

  • On préfère généralement COPY car il est plus simple et plus clair.
  • ADD a des fonctionnalités supplémentaires : il peut gérer les URL distantes et extraire automatiquement les archives compressées (tar, gzip). Utilisez COPY sauf si vous avez explicitement besoin de la fonction d'extraction d'archive.