生产环境变量

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

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

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

你可以使用figarogem。 我正在使用它,它在生产中工作正常。

dotenv部署自述文件提到了如何在生产环境中使用它:

如果您使用的是Capistrano 3+:

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

set :linked_files, %w{.env} 

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

config/deploy.rb文件中:

 require "dotenv/capistrano" 

它将符号链接位于新版本中/path/to/shared中的.env

请记住在应用程序的Gemfile添加:production group到dotenv-rails gem:

 gem 'dotenv-rails', :groups => [:development, :test, :production] 

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

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