私は単純なNginxドッカーコンテナーを使っていくつかの静的ファイルを提供しています。コンテナに環境変数を設定するKubernetesを使用して、このコンテナをさまざまな環境(ステージング、プロダクションなど)に展開します(例:FOO_COUNT
)。環境に応じてnginxにヘッダーを設定してください。var
FOO_COUNT
の値をすべての応答のヘッダーとして渡すNginxを取得する最も簡単な方法は、環境ごとに異なるコンテナを構築する必要はありませんか?
私は単純なNginxドッカーコンテナーを使っていくつかの静的ファイルを提供しています。コンテナに環境変数を設定するKubernetesを使用して、このコンテナをさまざまな環境(ステージング、プロダクションなど)に展開します(例:FOO_COUNT
)。環境に応じてnginxにヘッダーを設定してください。var
FOO_COUNT
の値をすべての応答のヘッダーとして渡すNginxを取得する最も簡単な方法は、環境ごとに異なるコンテナを構築する必要はありませんか?
すぐに使えるnginxは、ほとんどの構成ブロック内で環境変数をサポートしていません。しかし、envsubst
as explained in the official nginx Docker imageを使用することができます。
名前の付いたnginxのコンテナ内で利用できる設定テンプレートを作成するだけです。 /etc/nginx/conf.d/mysite.template
。
それは例えば、あなたのnginxの設定が含まれています:
location/{
add_header X-Foo-Header "${FOO_COUNT}";
}
あなたがdocker-compose.yml
ファイルを使用している場合は、commandを使用し、
/bin/bash -c "envsubst </etc/nginx/conf.d/mysite.template> /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
でDockerfileコマンドを上書きします。
Kubernetes provides a similar way to override the default command in the image。
この記事も参照してください。http://tarunlalwani.com/post/simple-parameterized-config-files-docker/ @lifeisfooによって与えられた同様のテクニックを議論します –