我需要将大量环境变量传递给Unicorn Web服务器运行的Rails应用程序。 sample unicorn init script包含以下行:
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变量不会进一步传输。