Start·Fehlermeldungen

buildkit · Docker

Die Meldung

failed to solve: process "/bin/sh -c npm ci" did not complete successfully: exit code: 1

Was es bedeutet

Diese RUN-Zeile in Ihrem Dockerfile endete mit einem Status ungleich Null. Diese Zeile nennt nur, welcher Befehl scheiterte und mit welchem Code; der eigentliche Grund steht in der Ausgabe dieses Befehls darüber, die BuildKit nach Abschluss eines Schritts gern einklappt. Ein erneuter Lauf mit docker build --progress=plain gibt die Ausgabe jedes Schritts vollständig aus; verbirgt eine zwischengespeicherte Schicht einen älteren Fehler, fügen Sie --no-cache hinzu — um den Preis, alles ab dem ersten Schritt neu zu bauen. exit code: 1 ist kein Grund, sondern nur die Tatsache des Scheiterns.

Die Lösung

docker build --progress=plain --no-cache .
Ausgegeben von
buildkit
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 „failed to solve: process "/bin/sh -c npm ci" did not complete successfully: exit code: 1“?

Diese RUN-Zeile in Ihrem Dockerfile endete mit einem Status ungleich Null. Diese Zeile nennt nur, welcher Befehl scheiterte und mit welchem Code; der eigentliche Grund steht in der Ausgabe dieses Befehls darüber, die BuildKit nach Abschluss eines Schritts gern einklappt. Ein erneuter Lauf mit docker build --progress=plain gibt die Ausgabe jedes Schritts vollständig aus; verbirgt eine zwischengespeicherte Schicht einen älteren Fehler, fügen Sie --no-cache hinzu — um den Preis, alles ab dem ersten Schritt neu zu bauen. exit code: 1 ist kein Grund, sondern nur die Tatsache des Scheiterns.

Q. Wie behebe ich das?

docker build --progress=plain --no-cache . — vor dem Ausführen oben prüfen, was dieser Befehl verwirft.

Q. Welches Werkzeug gibt das aus?

buildkit. Es gehört zu Docker, und die Meldung hat 15 Wörter.

Verwandte Fehler