entrykitは、コンテナ実行時にテンプレートファイルをレンダリングしたり、起動コマンドを切り替えることができる。
entrykitの使い方
Dockerfileで以下のように設定する。
- entrykitをインストール
- テンプレファイルをコンテナにコピー
- ENTRYPOINTでコマンドの設定する
ENTRYPOINTは、["コマンド", "パラメータ1", "パラメータ2"]を定義する。
entrykitの機能
entrykitの機能をまとめました。
- レンダリング
- コマンドの切替
それぞれ詳しく解説します。
render機能
コンテナ実行時に環境変数の値を指定することで、テンプレートファイルをレンダリングすることができる機能。
例えば、nginxの設定でnginx.conf.tmplファイルをレンダリングするなら、以下のように設定する。
worker_processes {{ var "WORKER_PROCESSES" | default "1"}}
※デフォルト値は設定しなくても問題ない。
この環境変数のレンダリングは、Dockerfileをビルドした後に、以下のコマンドを実行する。
docker run -it -p 80:80 -e WORKER_PROCESSES=変更したい値 イメージ名
switch機能
ENTRYPOINTで定義したコマンドを切り替える事ができる。
例えば、ENTRYPOINT ["switch", "A=コマンド1", "B=コマンド2", "コマンド3"]のように設定し、$docker runを場合。
- 通常起動=コマンド3が実行。
- イメージ名 Bを指定=コマンド2を実行。
- イメージ名 Cを指定=コマンド1を実行。
自由にコマンドを選択することが可能になる。
prehook機能
メインプロセス起動前のコマンドを設定できる。
ENTRYPOINT、["prehook", "パラメータ1", "パラメータ2"]
codep機能
複数プロセスを同時起動することができる。
例えば、シェルスクリプトAとBが存在すると、以下のようなコマンドで同時に実行できる。
ENTRYPOINT、["codep", "シェルA", "シェルB"]