2017-05-10 3 views
0

Ich habe Maven läuft eine Bash, um etwas mit Docker zu bauen.Wie Docker Fehler oder überprüfen Version gibt

<plugin> 
    ... 
    <artifactId>maven-antrun-plugin</artifactId> 
     ... 
      <exec executable="${basedir}/generate.sh" failonerror="true"> 
           <arg value="${thrift.version}" /> 
... 

Das Bash-Skript läuft so etwas wie:

for file in src/main/thrift/*.thrift; do 
    echo "Compiling ${file}" 
    docker run {...} thrift:${THRIFT_VERSION} thrift {...} 
done 

Mein Problem ist, wenn Docker nicht die Version Ich anfordernden finden kann, ist es einen Fehler in der Konsole zeigt aber es funktioniert nicht " scheitern ": Es baut einfach weiter.

[exec] Compiling src/main/thrift/amsException.thrift 
[exec] docker: Tag 0.9.0 not found in repository docker.io/library/thrift. 
[exec] See 'docker run --help'. 
[exec] Unable to find image 'thrift:0.9.0' locally 

und damit Maven sagt

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 

Wie kann ich Docker machen werfen und Fehler, wenn es nicht die Version finden kann? Mein letztes Ziel ist es, Maven nicht sauber zu installieren, wenn das passiert.

Prost!

+0

Ich denke, eine andere Option wäre, vorher zu prüfen, ob die Version existiert, aber ich würde immer noch den Fehler werfen müssen. – ldepablo

Antwort

1

Sie können docker run Exit-Code überprüfen. Wenn es nicht 0 ist, brechen Sie das Skript ab.

+0

Sie können es auf einmal machen, Sie müssen '$?' Nicht überprüfen: 'if docker run ...; dann ...; fi' – heemayl

Verwandte Themen