我已经改用配置的环境变量 http://12factor.net/config它工作得很好 - 除非我必须使用 capistrano 部署或运行任务。
Capistrano 3 似乎执行每个带有前缀的命令/usr/bin/env
这会删除我设置的所有环境变量.bashrc
.
EDIT- 在进行更多研究时,这可能不是问题,问题可能是因为 capistrano 作为非登录、非交互式 shell 执行并且不加载.bashrc
or .bash_profile
。但仍然卡住了。
确保 capistrano 执行任务时设置环境变量的最佳方法是什么?
你可能最好看看之间的区别ENVIRONMENT VARIABLES and SHELL VARIABLES https://askubuntu.com/questions/26318/environment-variable-vs-shell-variable-whats-the-difference
当您启动 SSH 时,您的应用程序将加载在您的应用程序中定义的 SHELL 变量。.bashrc
文件。这些仅在 shell 的生命周期中存在,因此,我们不会像ENV
vars
你可能最好把ENV
变量在:
/etc/environment
像这样:
export ENVIRONMENT_VAR=value
这将使变量在整个系统中可用,而不仅仅是在不同的 shell 会话中
Update
你有没有尝试过
Capistrano:我可以为整个上限会话设置一个环境变量吗? https://stackoverflow.com/questions/7602548/capistrano-can-i-set-an-environment-variable-for-the-whole-cap-session
set :default_env, {
'env_var1' => 'value1',
'env_var2' => 'value2'
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)