docker build
の間にビルド引数を必須にする方法はありますか?引数がないと、ビルドが失敗することが予想されます。次Dockerfileため例えばDockerビルド時にビルド引数を必須にする方法は?
、:私はdocker build -t my-tag .
で構築されたときARG MY_VARIABLE
で失敗しdocker build -t my-tag --build-arg MY_VARIABLE=my_value .
で構築されたときに渡すために、ビルドをしたいと思います
FROM ubuntu
ARG MY_VARIABLE
ENV MY_VARIABLE $MY_VARIABLE
RUN ...
。
この動作を達成する方法はありますか?私の場合、デフォルト値を設定しても本当にトリックはありません。
(私はdarwin/amd64
にドッカー1.11.1
を実行しているよ。)
EDIT: 私は考えることができることを行う方法の1つはMY_VARIABLE
が空の時に失敗したコマンドを実行することです、例えば:
FROM ubuntu
ARG MY_VARIABLE
RUN test -n "$MY_VARIABLE"
ENV MY_VARIABLE $MY_VARIABLE
RUN ...
しかし、それは当面の問題の非常に慣用的な解決策ではないようです。あなたはこのような何かを行うことができ
定義されていないargが渡されると失敗するのは少し奇妙ですそれ以外の方法ではありませんが、それはそれが動作する方法であるようです。 dockerfileの後半のステップとして "test.sh"スクリプトを実行して、一連の条件をチェックし、それらを適切に処理することができます。複雑さによっては、別々のファイルとして管理する方が簡単かもしれません。それが1つか2つのARGであれば、あなたのインライン方法が実際に最高かもしれません。 – ldg