【问题标题】:ENV variables only available in production console, not in app -- Rails, Figaro GemENV 变量仅在生产控制台中可用,在应用程序中不可用——Rails、Figaro Gem
【发布时间】:2013-10-27 21:39:29
【问题描述】:

我正在使用 figaro gem,并根据文档创建了一个 application.yml 文件,其中包含我的所有变量。这个 application.yml 文件位于一个共享文件夹中(我正在使用 capistrano),并且符号链接到当前实时应用程序目录中的 config/application.yml ,但是我只能访问 rails 控制台中的变量而不是应用程序。我的凭据如下(实际细节省略):

注意:我已尝试删除“”语音标记,并在此列表前加上生产:每行有 2 个空格,没有制表符,它不能解决任何问题。该文件的权限与databse.yml文件的权限完全相同,777,实现方式相同。

application.yml

FFMPEG_LOCATION: "/path/to/ffmpeg"
EMAIL_USERNAME: "me@gmail.com"
EMAIL_PASSWORD: "password"
S3_BUCKET: "my_bucket"
AWS_SECRET_KEY_ID: "my_secret_key"
AWS_ACCESS_KEY_ID: "my_access_key"

我可以在生产控制台中访问这些变量 =>

Loading production environment (Rails 3.2.14)
irb(main):001:0> ENV["S3_BUCKET"]
=> "my-s3-bucket-name"

但是,它们不会在应用程序本身中返回任何内容。我在 Ryan 出色的 Pro railscast 剧集http://railscasts.com/episodes/335-deploying-to-a-vps987654321@

之后设置了我的 linux 盒子

如何让这些变量在应用程序本身中可访问?

如果有人需要更多代码,请大声疾呼。

编辑 我删除了 figaro gem 实现了以下 railscasts 教程中所示的 yaml 配置:http://railscasts.com/episodes/85-yaml-configuration-revised。我认为这实际上是 figaro gem 正在做的事情,但是本教程没有使用 ENV 变量,而是使用了 CONFIG[:variables] 似乎效果很好。

【问题讨论】:

  • 乘用车还是独角兽?
  • 我正在使用 nginx、unicorn、postgres
  • 我会直接使用 yml 而不是 s3 机密的环境变量,但如果你真的想用 env 方式来做:对于 nginx,你必须在主要上下文中设置 env vars你的配置文件。您遇到问题的原因是 nginx 以自己的用户身份运行,当您登录并运行控制台时,您是另一个用户。
  • 将此作为答案,我很乐意接受。我更改为已添加到问题中的 yml 配置,但我不知道为什么它们的变量不会显示。您的解释很有道理,谢谢!

标签: ruby-on-rails ruby linux environment-variables


【解决方案1】:

每条评论:

Nginx 以自己的用户身份运行,因此环境变量需要存在于它的空间中。作为用户登录并运行控制台时,您访问的环境变量集与 nginx 用户访问的环境变量不同。

如果您选择将它们添加到 main 上下文中的 nginx 配置中,则可以执行此操作。但是使用直接的 yaml 并将您的秘密令牌添加到您的 yaml 文件中可能更容易。

【讨论】:

  • 我知道已经晚了将近 3 年,但您能否详细说明如何使变量“生活在它的空间中”?我遇到了完全相同的问题 - rails c production 给了我 Figaro.env.secret_key_base 作为有效值,但 config/secrets.yml 中的 ENV["secret_key_base"] 无法识别它。我收到Missing secret_key_base for production environment, set this value in config/secrets.yml>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 2013-03-24
  • 2014-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多