我需要向Unicorn服务器运行的Rails应用程序传递大量的环境变量。示例独角兽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"] 在我的应用程序中没有返回任何..。
它应该这样工作吗?如果是,我做错什么了?如果不是,那么我如何以干净的方式将许多env传递到Rails应用程序中呢?(不污染全球环境,也不把它们都放在命令行中)
更新我的调查显示了这样的shell文件:
. init.conf
echo $VAR1按预期工作。但这个:
. init.conf
ruby -e "puts ENV['VAR1']"不会的。因此,.将代码导入到脚本中,但通过这种方式设置的env不会被进一步传输。
发布于 2012-10-24 10:00:04
您可能必须从配置文件中“导出”变量。如果你把
export VAR1=value1
export VAR2=value2在配置文件中?
发布于 2012-10-24 01:22:55
我会考虑使用福尔曼,特别是使用.env文件作为定义的这里。
https://stackoverflow.com/questions/12974200
复制相似问题