我需要將大量環境變量傳遞給由Unicorn Web服務器運行的Rails應用程序。該sample unicorn init script有下面幾行:將許多環境變量傳遞給Unicorn運行的Rails應用程序
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
還送了我這個文件的可執行文件(不知道這是否是必要的)
並重新啓動Unicorn。但是ENV["VAR1"]
在我的申請中什麼都不會返回 ...
它應該以這種方式工作嗎?如果是的話,我做錯了什麼?如果不是,那麼我怎樣才能以一種乾淨的方式將許多env vars傳遞到Rails應用程序? (不污染地球環境,或將所有的人都在命令行)
更新我的調查表明,shell文件是這樣的:預期
. init.conf
echo $VAR1
作品。但是這一個:
. init.conf
ruby -e "puts ENV['VAR1']"
沒有。因此.
將代碼導入腳本,但以此方式設置的env變量不會進一步傳輸。
init.conf中應該包含什麼內容? – Nikola