5

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

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

我怎样才能让它以一种干净的方式工作?

4

3 回答 3

15

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

如果您使用 Capistrano 3+:

只需将 .env 添加到您的链接文件列表中:

set :linked_files, %w{.env}

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

在您的config/deploy.rb文件中:

require "dotenv/capistrano"

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

请记住将:production组添加到dotenv-rails应用程序的 gem 中Gemfile

gem 'dotenv-rails', :groups => [:development, :test, :production]
于 2013-10-27T07:14:14.580 回答
1

您可以使用figaro gem。我正在使用它,它在生产中运行良好。

于 2013-06-18T10:38:10.463 回答
0

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

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

于 2015-06-05T13:12:23.997 回答