Accueil·Messages d’erreur

docker · Docker

Le message

COPY failed: file not found in build context or excluded by .dockerignore

Ce que cela veut dire

COPY ne peut prendre que des fichiers situés dans le contexte de build, et le fichier n'y est pas. Le contexte est le dernier argument de docker build : le plus souvent vous avez visé un dossier parent avec ../x, ou .dockerignore a filtré le fichier — classique quand node_modules ou *.env est ignoré puis qu'on copie quelque chose de son contenu. Le message cite les deux causes : lisez d'abord cat .dockerignore, puis réécrivez le chemin depuis la racine du contexte. Élargir le contexte pour s'en sortir revient à envoyer tout le dossier au démon, et chaque build ralentit.

Le correctif

cat .dockerignore
Émis par
docker
Docker
12

Les erreurs de Docker ne deviennent lisibles qu'une fois rangées par couche — le client qui n'atteint pas le démon, le registre qui refuse, un RUN qui échoue au build, un conteneur qui meurt dès son démarrage sont quatre problèmes distincts — et pour les couches build et exécution, la ligne n'est pas la raison : la raison est dans la sortie de la commande qui tournait à l'intérieur, tandis que le coût de chaque correctif varie aussi selon la couche.

Lire un message d’erreur

  • Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
  • S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
  • Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
  • La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
  • Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.

Questions fréquentes

Q. Que veut dire « COPY failed: file not found in build context or excluded by .dockerignore » ?

COPY ne peut prendre que des fichiers situés dans le contexte de build, et le fichier n'y est pas. Le contexte est le dernier argument de docker build : le plus souvent vous avez visé un dossier parent avec ../x, ou .dockerignore a filtré le fichier — classique quand node_modules ou *.env est ignoré puis qu'on copie quelque chose de son contenu. Le message cite les deux causes : lisez d'abord cat .dockerignore, puis réécrivez le chemin depuis la racine du contexte. Élargir le contexte pour s'en sortir revient à envoyer tout le dossier au démon, et chaque build ralentit.

Q. Comment le corriger ?

cat .dockerignore — avant de le lancer, vérifiez plus haut ce que cette commande jette.

Q. Quel outil émet cela ?

docker. Cela relève de Docker, et le message compte 12 mots.

Erreurs voisines