生产环境变量

时间:2013-06-17 15:03:00

标签: ruby-on-rails deployment capistrano

我目前正在亚马逊上部署我的Rails应用程序,而且我遇到环境变量问题。

我在开发和测试中使用dotenv gem,它在尝试访问我的环境变量时工作正常,但在生产中它似乎不起作用。我读到dotenv gem并不适合生产。我必须设置近20个不同的环境变量,包括API密钥等,我正在使用rubber / capistrano进行部署。

我怎样才能以干净的方式工作?

3 个答案:

答案 0 :(得分:14)

dotenv-deployment readme提到了如何在生产环境中使用它:

如果您使用的是Capistrano 3 +:

只需将.env添加到您的linked_files列表中:

set :linked_files, %w{.env}

如果您使用的是Capistrano 2.x.x版本:

config/deploy.rb文件中:

require "dotenv/capistrano"

它将对新版本中位于.env的{​​{1}}进行符号链接。

请务必将/path/to/shared组添加到应用程序:production中的dotenv-rails gem:

Gemfile

答案 1 :(得分:1)

你可以使用figaro宝石。我正在使用它,它在生产中运行良好。

答案 2 :(得分:0)

在Capistrano 3中将require "dotenv/rails-now"添加到您的Capfile中。 这将确保capistrano也可以访问环境。

(我们遇到了capistrano访问appsignal的API令牌的问题,因此capistrano在新部署完成后无法通知appsignal)