我目前正在亚马逊上部署我的Rails应用程序,而且我遇到环境变量问题。
我在开发和测试中使用dotenv gem,它在尝试访问我的环境变量时工作正常,但在生产中它似乎不起作用。我读到dotenv gem并不适合生产。我必须设置近20个不同的环境变量,包括API密钥等,我正在使用rubber / capistrano进行部署。
我怎样才能以干净的方式工作?
答案 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)