opsworks rails.env 与自定义 json rails_env 不匹配

Posted

技术标签:

【中文标题】opsworks rails.env 与自定义 json rails_env 不匹配【英文标题】:opsworks rails.env does not match custom json rails_env 【发布时间】:2014-03-20 07:47:44 【问题描述】:

在我的 nginx/Unicorn Opsworks 环境中,我已将自定义 JSON rails_env 属性设置为“opsworks”


"deploy": 
    "myapp": 
        "rails_env": "opsworks"
    

但是当我进入 Rails 控制台并运行 Rail.env 时,Rails 返回“开发”。 Opsworks 正在 opsworks 环境下启动 Unicorn,但 Rails 似乎正在开发中运行。日志目录包含开发和 opsworks 的日志。

对我做错了什么有什么想法吗?

【问题讨论】:

【参考方案1】:

您正在做的是为您的 rails 应用程序设置 RAILS_ENV。你可以在这里查看源代码:https://github.com/aws/opsworks-cookbooks/blob/master/unicorn/definitions/unicorn_web_app.rb

这不会在您 ssh 登录时为您设置 shell / ssh 环境变量。

手动完成:

sudo su deploy  # change to deploy user
cd /srv/www/application_short_name/current  # drop into the specific directory
RAILS_ENV=opsworks rails c

这将在您运行命令时为您提供适当的 rails env。

您可以通过添加以下行为您的用户创建一个 .bashrc 文件来自动化这部分/使其更容易:

export RAILS_ENV=opsworks

【讨论】:

谢谢。这是整个网站上最有帮助的答案。

以上是关于opsworks rails.env 与自定义 json rails_env 不匹配的主要内容,如果未能解决你的问题,请参考以下文章

Rails 6 本地服务器启动:RAILS_ENV=未定义开发环境

Kendo MVVM 数据绑定与自定义 Kendo 小部件

如何从rails env检查mysql数据库的存在位置?

根据当前 Rails.env 配置变量

模拟 Rails.env.development?使用 rspec

opsworks:从命令行“更新自定义食谱”