docker · Docker
Die Meldung
COPY failed: file not found in build context or excluded by .dockerignore
Was es bedeutet
COPY kann nur Dateien aus dem Build-Kontext holen, und dort liegt die Datei nicht. Der Kontext ist das letzte Argument von docker build, also haben Sie meist mit ../x auf einen übergeordneten Ordner gezeigt, oder .dockerignore hat die Datei ausgefiltert — klassisch, wenn node_modules oder *.env ignoriert wird und dann etwas daraus kopiert werden soll. Die Meldung nennt beide Ursachen: lesen Sie zuerst cat .dockerignore und schreiben Sie den Pfad relativ zur Kontextwurzel neu. Den Kontext zu erweitern bedeutet, den ganzen Ordner an den Daemon zu senden, was jeden Build verlangsamt.
Die Lösung
cat .dockerignore- Ausgegeben von
- docker
- Docker
- 12
Docker-Fehler werden erst lesbar, wenn man sie einer Schicht zuordnet — der Client erreicht den Daemon nicht, die Registry verweigert, ein RUN scheitert im Build, ein Container stirbt sofort beim Start: das sind vier verschiedene Probleme — und in der Build- und Laufzeitschicht ist die Zeile selbst nicht der Grund: der Grund steht in der Ausgabe des Befehls, der darin lief, und auch der Preis jeder Behebung unterscheidet sich je Schicht.
Eine Fehlermeldung lesen
- Von der ersten Zeile abwärts lesen. Weiter unten geht es um das Innere des Werkzeugs; die Ursache steht meist oben.
- Gibt es Datei und Zeilennummer, dort anfangen — nicht der oberste Stack-Frame, sondern die oberste Zeile, die eine eigene Datei nennt.
- Die Meldung wörtlich suchen, vorher aber eigene Pfade und Variablennamen entfernen; genau die verhindern den Treffer.
- Dieselbe Lage wird je Werkzeugversion anders formuliert. Passen die Treffer nicht, die Versionsnummer mit in die Suche.
- Vor dem Einfügen einer Lösung prüfen, was sie verwirft. Manches davon lässt sich nicht zurückholen.
Häufige Fragen
Q. Was bedeutet „COPY failed: file not found in build context or excluded by .dockerignore“?
COPY kann nur Dateien aus dem Build-Kontext holen, und dort liegt die Datei nicht. Der Kontext ist das letzte Argument von docker build, also haben Sie meist mit ../x auf einen übergeordneten Ordner gezeigt, oder .dockerignore hat die Datei ausgefiltert — klassisch, wenn node_modules oder *.env ignoriert wird und dann etwas daraus kopiert werden soll. Die Meldung nennt beide Ursachen: lesen Sie zuerst cat .dockerignore und schreiben Sie den Pfad relativ zur Kontextwurzel neu. Den Kontext zu erweitern bedeutet, den ganzen Ordner an den Daemon zu senden, was jeden Build verlangsamt.
Q. Wie behebe ich das?
cat .dockerignore — vor dem Ausführen oben prüfen, was dieser Befehl verwirft.
Q. Welches Werkzeug gibt das aus?
docker. Es gehört zu Docker, und die Meldung hat 12 Wörter.