Dockerfileでの|(パイプ)の扱い
1739 ワード
hadolint DL4006について
Set the SHELL option -o pipefail before RUN with a pipe in
DockerfileのRUN
命令の前に、SHELL
命令で、-o pipefail
を指定しておくべしというもの
なぜつけた方がいいのか?
example(ダメな例)
RUN wget -O - https://some.site | wc -l > /number
上の例では、wc -lコマンドが成功している限り、wgetコマンドが失敗しても、このビルドステップは成功して新しいイメージを生成
します。
そこでSHELL命令
の出番
example(良い例)
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN wget -O - https://some.site | wc -l > /number
bash -o pipefail / set -o pipefail
パイプでつないだ各コマンドの中で終了ステータスが0以外(正常終了以外)だった場合に、最後に0以外だったコマンドの終了ステータスが返されます。
すなわちwgetコマンドが失敗した場合に、ビルドが成功しないようになるということです
Author And Source
この問題について(Dockerfileでの|(パイプ)の扱い), 我々は、より多くの情報をここで見つけました https://qiita.com/nossy/items/0f5572d84f4617207378著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .