2015-06-08 12 views
45

Ich habe eine Dockerfile. Beim Erstellen des Abbilds schlägt der Build bei diesem Fehler fehl:Dockerfile Build - Fehler zu ignorieren?

, was in Wirklichkeit harmlos ist. Die Bibliothek ist in Ordnung, aber Docker stoppt den Build, sobald dieser Fehler auftritt. Kann ich Docker irgendwie anweisen, das einfach zu ignorieren?

Antwort

99

Sicher. Docker reagiert nur auf die Fehlercodes, die von den Shellskripten RUN in Dockerfile zurückgegeben werden. Wenn Ihr Dockerfile so etwas wie hat:

RUN make 

Sie können ersetzen, dass mit:

RUN make; exit 0 

Dies wird immer wieder zurückkehren einen 0 (Erfolg) Exit-Code. Der Nachteil hierbei ist, dass Ihr Image scheinbar erfolgreich erstellt wird, selbst wenn tatsächliche Fehler im Build-Prozess sind.

+1

Ich bin hierher gekommen, als ich versuchte, 'service php7-fpm start' zu starten. Es würde 1 zurückgeben und RUN würde fehlschlagen; mit 'service php7-fpm start; service php7-fpm status 'macht den Trick - es scheint auch ein Problem während des Builds zu lösen, da beide Befehle Probleme verursachen würden. – igorsantos07

+0

Ich bin hierher gekommen, als ich Qt5 aus der Quelle bauen wollte. Es würde gut bauen, aber gleichzeitige Build kombiniert mit der Tatsache, dass Qt Build-Prozess hat Build-Time-Tests von make ausgeführt (das absichtlich fehlschlagen) mein RUN-Befehl mit Fehler (2) beendet wurde. Dies wird hoffentlich das Problem lösen! –

4

denen von Interesse sein Dies könnte, deren mögliche Fehler in ihren Bildern nicht harmlos genugsind unbemerkt/protokolliert. (Auch nicht genug rep. Zu kommentieren, also hier als Antwort.)

Wie bereits erwähnt, der Nachteil von RUN make; exit 0 ist, dass Sie nicht wissen, ob Ihr Build fehlgeschlagen ist. Daher eher so etwas wie verwenden:

make test 2>&1 > /where/ever/make.log || echo "There were failing tests!" 

Like this, Sie über den Docker Bild Build-Prozess Protokollbenachrichtigung, und Sie können sehen, was genau schlecht ging während make (oder was auch immer sonst Ausführung, ist dies nicht zu machen eingeschränkt).

Verwandte Themen