Translate

2021年4月14日水曜日

DockerfileのCMDを環境変数で処理を分岐させる

小ネタシリーズ。

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 件のコメント:

bolt.new をローカルPC(Windows10)で動かす

生成AIによるコード生成ツールはだいぶ進化しており、 ユーザ要件を入力するとJavaScript/TypeScriptコードにしてくれる サービスが登場し始めた。 特に、 bolt.new はOSS(MITライセンス)があり ローカルPCで動作するとのこと。 ただ生成AIモデルは...