2017-09-26 10 views
0

私は単純なNginxドッカーコンテナーを使っていくつかの静的ファイルを提供しています。コンテナに環境変数を設定するKubernetesを使用して、このコンテナをさまざまな環境(ステージング、プロダクションなど)に展開します(例:FOO_COUNT)。環境に応じてnginxにヘッダーを設定してください。var

FOO_COUNTの値をすべての応答のヘッダーとして渡すNginxを取得する最も簡単な方法は、環境ごとに異なるコンテナを構築する必要はありませんか?

+0

この記事も参照してください。http://tarunlalwani.com/post/simple-parameterized-config-files-docker/ @lifeisfooによって与えられた同様のテクニックを議論します –

答えて

2

すぐに使える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

+0

ありがとうございます。私はポッド上にテンプレートを生成するためにKubenetesのドキュメントに飛び込む必要があるように見えます。 – harryg

+0

あなたは大歓迎です。あなたの問題が解決すれば回答を受け入れてください。これは将来の訪問者を助けるでしょう。 – lifeisfoo

関連する問題