使用不同的production.rb内容将应用程序部署到两个不同的服务器

时间:2014-12-30 16:24:06

标签: ruby-on-rails ruby git capistrano

我正在使用 capistrano 生产模式的两个不同服务器部署我的应用程序,但我需要为每个服务器更改production.rb中的一些内容。

2我知道的可能方式。

我觉得两条线都变得很重。

  • 为每个分支使用不同的分支(git)。 - 担心维护。

  • 创建不同的环境。

如何应对这种情况,更简单的选择还是新的方式?

Rails 3和Cap 2

编辑:我还被建议使用ENV变量或在服务器上的其他位置包含文件

1 个答案:

答案 0 :(得分:1)

  

为每个人使用不同的分支(git)。

当且仅当:

时这样做
  • 您希望每个服务器应用程序具有明显不同的功能,并且这些功能相互干扰,即没有简单的方法来使用特定于服务器的功能标记。

  • 例如,如果一个服务器是新代码的alpha测试,而一个服务器是新代码的beta测试。

  

创建不同的环境。

当且仅当:

时这样做
  • 您希望每个服务器应用都有截然不同的体验。

  • 例如,如果一个服务器是贸易展览的演示服务器,因此经常被擦除,而一个服务器是您真正的客户网站。

  

使用ENV变量

这是最好的方法。

使用dotenv gem或类似的figaro gem

“dotenv解决了设置项目特定环境变量的问题,并且非常容易上手。首先在适当的位置加入gem'dotenv-rails',:groups => [:development,:test]组,在本例中是开发和测试。然后,您可以将敏感信息放在项目目录根目录下的.env文件中“

“Figaro与dotenv类似。它的作用是允许您将所有敏感秘密存储在config / application.yml的YAML文件中。使用简单的figaro install命令,您可以将YAML文件自动添加到gitignore。 Figaro在构建时考虑到了Heroku的部署。有一个方便的配置可以帮助您设置配置文件中的值。它还提供了有关部署到其他主机的有用信息。“

信用:Managing Environment Configuration in Rails

相关问题