Unicorn Web サーバーによって実行される Rails アプリケーションに多数の環境変数を渡す必要があります。サンプルのunicorn init スクリプトには、次の行があります。
APP_ROOT=/home/x/my_app/current
<...>
INIT_CONF=$APP_ROOT/config/init.conf
<...>
test -f "$INIT_CONF" && . $INIT_CONF
だから私はを作成し$APP_ROOT/config/init.conf
、次のようにすべての変数をそこに置きました:
VAR1=value1
VAR2=value2
このファイルを実行可能にしました(必要かどうかはわかりません)
そしてユニコーンを再起動。しかし、私のアプリケーションでENV["VAR1"]
は何も返されません...
このように動作するはずですか?はいの場合、何が間違っていますか? いいえの場合、多くの環境変数をRailsアプリにきれいな方法で渡すにはどうすればよいですか? (グローバル環境を汚染したり、それらすべてをコマンドラインに入れたりすることなく)
更新私の調査では、次のようなシェルファイルが示されました。
. init.conf
echo $VAR1
期待どおりに動作します。しかし、これは:
. init.conf
ruby -e "puts ENV['VAR1']"
ではない。したがって.
、コードをスクリプトにインポートしますが、この方法で設定された環境変数はそれ以上転送されません。