环境变量在 DigitalOcean 中不起作用

Environment variables not working in DigitalOcean

我尝试在 .bashrc.profile.bash_profile/etc/environment/etc/defaults/nginx 中设置环境变量,但没有任何效果。只有 /etc/environment 是实际响应 echo $MY_VAR 输出的文件,但 Rails 应用程序甚至在 nginx and pumadaemon-reload 其他文件一起重新启动后也没有选择这些变量' 在终端中响应(因为当我执行 ssh 时它会更新 LINUX session)。我在 my_app/config 文件夹的文件中使用这些环境变量。任何人都可以告诉一个更好的方法来使这些变量起作用。

我正在 NginxPumaRuby Rails 5 CapistranoUbuntu 18.04。提前致谢

如果您愿意使用 Dotenv gem,我最近将它与将我的环境变量保存在 .env 中结合使用(请务必将其添加到您的 .gitignore) . Dotenv 的文档解释了如何进行设置。在 config/application.rb 中,您需要添加 Dotenv::Railtie.load,然后添加 YOUR_SECRECT = ENV['YOUR_SECRECT'] 以及您在 .env 中拥有的任何其他变量。据推测,如果您使用的是 Capistrano,您应该能够 append .envconfig/deploy.rb 中的其他 linked_files,但我最终不得不添加 .env 文件手动添加到我服务器上的 shared 目录。尽管如此,该设置使我的环境变量可用于 config/environments/production.rb 文件。