2017-05-10 8 views
0

ドッカーで何かをビルドするためのbashを実行しています。ドッカーを失敗またはチェックする方法はありますか?

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

bashスクリプトのようなもので動作します。

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

を私の問題は、ドッカーは、私が要求していたバージョンを見つけることができないとき、ある、「それは、コンソールにエラーを示していますが、それはしていません失敗 ":それはちょうど建物を維持する。

[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 

、その結果、Mavenは

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

は、どのように私はそれがバージョンを見つけることができないときドッカーが投げるとエラー作ることができると言いますか?私の最終的な目標は、これが起こったときにMavenがクリーンインストールに失敗することです。

乾杯!

+0

別のオプションは、バージョンが存在するかどうかを事前に確認することですが、私はまだエラーをスローする必要があります。 – ldepablo

答えて

1

終了コードはdocker runです。 0でない場合は、スクリプトを中止します。

for file in src/main/thrift/*.thrift; do 
    echo "Compiling ${file}" 
    docker run {...} thrift:${THRIFT_VERSION} thrift {...} 
    if [ $? != 0 ]; then 
     exit -1 
    fi 
done 
+0

あなたはそれを一度に行うことができます。 '$?'をチェックする必要はありません: 'docker run ...;それから...; fi' – heemayl

関連する問題