Dockerfileがあります。イメージをビルドするとき、ビルドはこのエラーで失敗します:
automake: error: no 'Makefile.am' found for any configure output
Error build: The command [/bin/sh -c aclocal && autoconf && automake -a] returned a non-zero code: 1
これは実際には無害です。ライブラリは正常にビルドされますが、Dockerはこのエラーを受け取るとビルドを停止します。これを無視するようにDockerに指示する方法はありますか?
承知しました。 Dockerは、RUN
内のDockerfile
シェルスクリプトによって返されたエラーコードに応答しています。 Dockerfile
に次のようなものがある場合:
RUN make
これを次のように置き換えることができます。
RUN make; exit 0
これは常に0
(成功)終了コードを返します。ここでの欠点は、ビルドプロセスにareの実際のエラーがあっても、イメージが正常にビルドされるように見えることです。
これは、画像の潜在的なエラーが十分に無害ではないに気づかない/記録される (また、コメントするのに十分な担当者がいないので、ここに答えとして。)
指摘したように、RUN make; exit 0
の短所は、ビルドが失敗した場合、あなたが知らないことです。したがって、次のようなものを使用してください。
make test 2>&1 > /where/ever/make.log || echo "There were failing tests!"
このように、Dockerイメージビルドプロセスのログを介して通知され、make
(またはその他の実行、これはmakeに制限されません)の間に正確に何が悪くなったかを確認できます。
また、標準のbash無視エラー|| true
を使用することもできます。これは、チェーンの途中にいる場合に便利です。
RUN <first stage> && <job that should not fail> || true && <next stage>