2

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']"

ではない。したがって.、コードをスクリプトにインポートしますが、この方法で設定された環境変数はそれ以上転送されません。

4

2 に答える 2

1

ここで定義されているように、特にファイルを使用するためにforemanを使用することを検討します。.env

于 2012-10-24T01:22:55.327 に答える
1

おそらく、構成ファイル内から変数を「エクスポート」する必要があります。入れたら効きますか

export VAR1=value1
export VAR2=value2

設定ファイルに?

于 2012-10-24T10:00:04.357 に答える