2016-11-29 6 views
1

Gibt es eine Möglichkeit, die Ergebnisse eines Befehls RUN in Dockerfile zu verarbeiten? Speziell würde ich gerne ändern, welche Ereignisse nach diesem Befehl abhängig von dem Ergebnis des ausgeführten Skripts sind.Dockerfile RUN-Befehl Ergebnis

+0

Nein, dies ist nicht möglich und nicht beabsichtigt (mit Ausnahme des Fehlschlagens des vollständigen Builds als eine Art "Logik"). Dockerfiles sollen * deterministisch * sein, und die Logik in ihnen könnte das mögliche Ergebnis verändern. Was versuchst du zu erreichen? – Lars

Antwort

0

Es ist am besten, einen komplexen Befehl in ein Skript einzubinden.

dann können Sie das Skript

COPY myscript 
RUN myscript 

Said Skript ausführen kann, wenn es ausgeführt wird, Kette mehrere Befehle und hat Zugriff auf ihr Ergebnis.
Wie jedes normale Shell-Skript kann es Befehle ausführen, die auf bedingten Anweisungen basieren.

+0

Ich kann das tun. Aber dieses Skript muss der letzte Befehl in einer 'Dockerfile' sein, um einen Status anzuzeigen. Andernfalls wird 'docker build' ausgeführt, ohne dass angezeigt wird, dass das Image nicht korrekt erstellt wurde. – ilya1725

+0

@ ilya1725 Wenn das Skript einen Nicht-Null-Exit-Status zurückgibt, schlägt Dockerfile fehl, nein? (wie in http://stackoverflow.com/a/37143794/6309 gezeigt) – VonC

+0

ja, wird es. Vielleicht möchte ich mehr von 'sh' Funktionalität von Dockerfile, die noch nicht existiert. – ilya1725