Ruby on rails 环境变量对生产的影响

Ruby on rails 环境变量对生产的影响,ruby-on-rails,deployment,capistrano,Ruby On Rails,Deployment,Capistrano,我目前正在Amazon上部署我的Rails应用程序,我面临环境变量的问题 我在开发和测试中使用dotenvgem,它在尝试访问环境变量时运行良好,但在生产中似乎不起作用。我读到dotenv gem不适合用于生产。我必须设置几乎20个不同的环境变量,包括API键等,我正在使用rubber/capistrano进行部署 我怎样才能让它干净地工作呢?你可以使用gem。我正在使用它,它在生产中运行良好。中提到了如何在生产环境中使用它: 如果您使用的是Capistrano 3+: 只需将.env添加到链接

我目前正在Amazon上部署我的Rails应用程序,我面临环境变量的问题

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

我怎样才能让它干净地工作呢?

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

中提到了如何在生产环境中使用它:

如果您使用的是Capistrano 3+:

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

set :linked_files, %w{.env}
如果您使用的是Capistrano 2.x.x版本:

config/deploy.rb
文件中:

require "dotenv/capistrano"
它将把位于新版本中的
/path/to/shared
中的
.env
符号链接到

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

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

在Capistrano3中,将
require“dotenv/rails now”
添加到您的CAP文件中。 这将确保capistrano也可以访问环境


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

Hi,figaro(正如我在回答中提到的)对您没有选择吗?我对appsignal/dotenv rails/cap 3有完全相同的问题;我所做的与它不同,我在Capfile中添加了以下内容:require'dotenv';Dotenv.loadCapistrano 4?我不相信有一个是汉克斯·科恩,不知道我怎么会漏掉那个打字错误。