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

【ハーネスエンジニアリングを始める前に】gpt-oss:20b の入出力データから、LLMの動作を理解する

  1. はじめに 最近は、 Cursor や Antigravity などのAIエージェント前提の統合開発環境や、 Claude Desktop や Codex アプリ などのPC上のオブジェクト操作が可能なデスクトップアプリ、 Open Claw といったPC全体の...