the*_*Kid 7 ruby-on-rails heroku environment-variables ruby-on-rails-5
我在 Rails 5.2 上有一个应用程序,它以前托管在 DigitalOcean 上,但我需要将它托管在 heroku 上。我一直在读到 heroku 无法读取 Credentials.yml 因为它在 gitignore 上,当然我不希望它公开。
所以我的关键变量是这样的(和 redis 的例子):
host: Rails.application.credentials.redis_host,
password: Rails.application.credentials.redis_password
Run Code Online (Sandbox Code Playgroud)
Heroku 无法读取此内容。所以我的问题是将其更改为 heroku ENV 变量的最佳方法是什么?我是否需要将所有当前的键(大约有 340 个)编辑为 ENV['SOMEKEY']?
我会很感激你的帮助!
Ysh*_*rov 18
创建credentials.yml 和主密钥:
rails credentials:edit
Run Code Online (Sandbox Code Playgroud)
编辑凭据:
EDITOR=vim rails credentials:edit
Run Code Online (Sandbox Code Playgroud)
使用 Vim:
CREDENTIALS.YML 外观示例:
development:
github:
client: acascascsacascascasc
secret: vdsvsvg34g34g
production:
github:
client: 34g3rvv
secret: erberb43
Run Code Online (Sandbox Code Playgroud)
查找凭据:
rails c
Rails.application.credentials.dig(:aws, :access_key_id)
Run Code Online (Sandbox Code Playgroud)
或者如果使用了环境变量
Rails.application.credentials[Rails.env.to_sym][:aws][:access_key_id]
Run Code Online (Sandbox Code Playgroud)
credentials.yml 文件不应在 gitignore 中。
解密凭证的主密钥应该在 gitignore 中。
要在生产中设置您的主密钥:
heroku config:set RAILS_MASTER_KEY=123456789
Run Code Online (Sandbox Code Playgroud)
或者
heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
Run Code Online (Sandbox Code Playgroud)
这就是您需要了解的有关 Ruby on Rails 凭据的全部信息。祝你好运 :)
归档时间: |
|
查看次数: |
2000 次 |
最近记录: |