生产环境变量
我目前正在亚马逊上部署我的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)
- Capistrano自定义任务失败,因为“Rails需要RubyGems> = 1.3.2”
- Capistrano在ssh登录后更改用户 – 作为另一个用户部署
- Capistrano bitbucket – 权限被拒绝(publickey)
- 使用EC2 + Rails + Nginx + Capistrano重启后Puma重启失败
- 与capistrano一起上演和现场应用
- Capistrano无法创建符号链接:文件存在
- 在能够使用Capistrano进行部署之前,是否需要在我的服务器上手动安装Bundler?
- 使用master.key进行数据海洋部署的Rails 5.2:ActiveSupport :: MessageEncryptor :: InvalidMessage:ActiveSupport :: MessageEncryptor :: InvalidMessage
- 使用Capistrano将Rails应用程序部署到多个Web服务器