小ネタシリーズ。
Dockerfileをビルドしたイメージをdocker run する際に
-e オプションで環境変数を渡して
CMDに指定したコマンドの実行を切り分けたい場合、
if else fi を使えば対応できます。
たとえば以下のようなDockerfileを書いて
FROM ubuntu:20.04
ENV type="fufufu"
# 環境変数 type が "fufufu" か "hehehe" の場合と
# それ以外の場合のかき分け
CMD if [ ${type} = "fufufu" -o ${type} = "hehehe" ]; then \
echo "type is ${type}"; \
echo "hehehe"; \
else \
echo "type ${type} is unknown"; \
fi;
docker build -t test/test:latest .
を実行したあとで
docker run -e type="hehehe" test/test:latest
を実行すると
type is hehehe
hehehe
と表示され、
docker run -e type="hohoho" test/test:latest
を実行すると
type hohoho is unknown
と表示されます。
0 件のコメント:
コメントを投稿