1. ホーム

[解決済み】Dockerfileのif else条件で外部引数を指定した場合

2022-04-01 05:34:09

質問

私は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

解決方法は?

見た目は悪いですが、以下のような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 .