【问题标题】:Set custom RAILS_ENV for OpsWorks为 OpsWorks 设置自定义 RAILS_ENV
【发布时间】:2015-02-19 00:27:19
【问题描述】:

我终其一生都无法弄清楚如何让 OpsWorks 使用我的 rails staging 环境。我有开发,分期和生产。在 OpsWoks 上为两个不同的堆栈开发本地机器和暂存和生产。我只是想让我的登台环境正常工作,但它一直部署为生产环境。 Staging 基本上是我的开发环境的复制品,但它能够向外部发送电子邮件,并且具有不同的数据库主机而不是 localhost。

到目前为止,我在堆栈设置中设置了这个自定义 json:

{
  "deploy": {
    "my_app_name": {
      "rails_env": "staging",
      "database": {
        "adapter": "mysql2"
      }
    }
  }
}

在添加此数据库适配器密钥/对之前,我一直遇到与 RDS 的数据库连接问题。我只是无法让它在暂存中启动我的 Rails 应用程序。

在创建应用程序并指定 git 源和 RDS 时,它会询问“Rails 环境”。我将其设置为暂存思维,这就是我定义要使用的 Rails 环境所需要做的所有事情。

非常感谢 OpsWorks 的任何专家提供帮助。我今天才开始设置。我希望文档有更好的示例。

【问题讨论】:

  • 你有没有想过这个问题?

标签: ruby-on-rails ruby-on-rails-4 amazon-ec2 aws-opsworks


【解决方案1】:

OpsWorks 将使用您在应用程序的自定义 json 中指定的 rails_env 启动应用程序。需要注意的是,如果您进入服务器并执行 rails console,您将看到 Rails.env 不等于您在 JSON 中设置的值。这是因为 OpsWorks 使用您输入的设置启动应用程序,但不会将该设置保存为环境变量。所以当你在 cli 上时,它不知道使用哪个环境。

有关更多信息,请参阅这个出色的答案: https://stackoverflow.com/a/21949946/973810

【讨论】:

    猜你喜欢
    • 2014-03-20
    • 2017-05-04
    • 2016-05-22
    • 2013-08-07
    • 2013-03-03
    • 2017-02-04
    • 2014-09-06
    • 2015-07-15
    • 1970-01-01
    相关资源
    最近更新 更多