为OpsWorks设置自定义RAILS_ENV

时间:2014-12-20 03:41:50

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

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

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

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

在添加此数据库适配器密钥/对之前,我一直与RDS存在数据库连接问题。我只是不能让它在启动时启动我的rails应用程序。

创建应用程序并指定git源和RDS时,它会要求" Rails环境"。我将此设置为分阶段思考,这就是我需要做的就是定义要使用的rails环境。

OpsWorks的任何专家都可以提供帮助,非常感谢。我今天刚开始设置它。我希望文档有一些更好的例子。

1 个答案:

答案 0 :(得分:1)

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

有关更多信息,请参阅以下优秀答案: https://stackoverflow.com/a/21949946/973810