gpt4 book ai didi

ruby-on-rails - AWS OpsWorks Environment变量不起作用

转载 作者:行者123 更新时间:2023-12-04 04:04:57 25 4
gpt4 key购买 nike

我正在运行Ubuntu 14.04 LTS 64位Rails应用程序,但无法访问我的App环境变量。

在OpsWorks应用程序面板中,设置环境变量,例如:

MYKEY: 1234

然后,我再次保存并部署我的应用程序以使其可见。

在我的Rails应用程序或Rails控制台中,我得到的结果为零:
$ bundle exec rails c production
>ENV["MYKEY"]
=> nil

我尝试重新启动服务器。我不确定我缺少什么,我在其他服务中一直在使用环境变量。

我如何追踪应该在哪里设置?

最佳答案

OpsWorks会根据要部署的应用程序类型将环境变量存储在不同的位置。在Rails/Passenger上,它们应保存在Apache配置文件#{your_app_name}.conf中。 (Source)

这意味着它们在您的常规Shell环境中不可用。

我知道Node.js配方将所有内容都存储在/srv/www/#{app_name}/shared/app.env文件中...然后将其获取以引入环境以运行Node服务器。此实现细节还意味着您可以编写源于该app.env文件的Shell脚本,然后调用某些Node脚本或其他名称。

当然,Rails不是节点。我不知道环境变量是否也存储在其他地方:快速浏览OpsWorks食谱中的Rails配方并没有发现任何明显的东西,但是也许我错过了一些东西。

根据您在OpsWorks食谱中进行的修改量,您可以创建一个执行以下操作的部署配方:
application_environment_file do
user deploy[:user]
group deploy[:group]
path ::File.join(deploy[:deploy_to], "shared")
environment_variables deploy[:environment_variables]
end

(也许调整路径)

然后,要运行控制台,当您通过SSH进入服务器时,请执行以下操作
sudo source /srv/www/my_app_name/shared/app.env; bundle exec rails console -e production或其他。

关于ruby-on-rails - AWS OpsWorks Environment变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28776805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com