Dockerfile の if else 条件と外部引数 質問する

Dockerfile の if else 条件と外部引数 質問する

私はdockerfileを持っています

FROM centos:7
ENV foo=42

それから私はそれを構築します

docker build -t my_docker .

そして実行します。

docker run -it -d  my_docker

コマンドラインから引数を渡してDockerfileのif elseで使用することは可能ですか?

FROM centos:7
if (my_arg==42)
     {ENV=TRUE}
else:
     {ENV=FALSE}

この議論に基づいて構築します。

 docker build -t my_docker . --my_arg=42

ベストアンサー1

見た目はそれほどきれいではないかもしれませんが、Dockerfile (条件付き) は次のようになります。

FROM centos:7
ARG arg
RUN if [[ -z "$arg" ]] ; then echo Argument not provided ; else echo Argument is $arg ; fi

そして次のようにイメージをビルドします。

docker build -t my_docker . --build-arg arg=45

または

docker build -t my_docker .

おすすめ記事