我已改用 environment variables for configuration它工作得很好 - 除非我必须使用 capistrano 部署或运行任务。
Capistrano 3 似乎执行每个前缀为 /usr/bin/env
的命令它会删除我通过 .bashrc
设置的所有环境变量.
编辑 - 在进行更多研究后,这可能不是问题,问题可能是因为 capistrano 作为非登录、非交互式 shell 执行并且不加载 .bashrc
或.bash_profile
。但仍然卡住了。
确保 capistrano 执行任务时设置环境变量的最佳方法是什么?
最佳答案
您可能最好查看 difference between ENVIRONMENT VARIABLES
and SHELL VARIABLES
当您启动 SSH 时,您的应用程序将加载 .bashrc
文件中定义的 SHELL 变量。这些仅在 shell 的生命周期中存在,因此,我们不像 ENV
vars
您可能最好将 ENV
变量放入:
/etc/environment
像这样:
export ENVIRONMENT_VAR=value
这将使变量在整个系统中可用,而不仅仅是在不同的 shell session 中
<小时/>更新
你试过吗
Capistrano: Can I set an environment variable for the whole cap session?
set :default_env, {
'env_var1' => 'value1',
'env_var2' => 'value2'
}
关于ruby-on-rails - Capistrano 和环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23672631/