Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 逐步解释如何在部署到Heroku时使用Rails secrets.yml而不向公共repo公开密钥_Ruby On Rails_Heroku_Secret Key - Fatal编程技术网

Ruby on rails 逐步解释如何在部署到Heroku时使用Rails secrets.yml而不向公共repo公开密钥

Ruby on rails 逐步解释如何在部署到Heroku时使用Rails secrets.yml而不向公共repo公开密钥,ruby-on-rails,heroku,secret-key,Ruby On Rails,Heroku,Secret Key,我正在使用Rails 4.1.1和ruby 2.0.0 我目前忽略了gitignore for github中的secrets.yml文件 秘密。yml development: secret_key_base: numb3r57ndl3tt3r5 test: secret_key_base: differentnumbersandletters13531515 production: secret_key_base: <%= ENV["SECRET_KEY_BASE']

我正在使用Rails 4.1.1和ruby 2.0.0

我目前忽略了gitignore for github中的secrets.yml文件

秘密。yml

development:
  secret_key_base: numb3r57ndl3tt3r5

test:
  secret_key_base: differentnumbersandletters13531515

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE'] %>
开发:
密钥库:numb3r57ndl3tt3r5
测试:
密钥库:不同的数字和字母13531515
制作:

secret\u key\u base:如果您使用这个密钥,这里有一个针对HEROKU的(希望很简单)分步指南,应该在将文件(secrets.yml)推送到GitHub或其他主机之前执行

*我不是这方面的专家,但这对我来说很有效,似乎是一个很好的解决方案。它结合了这个问题的答案以及这个问题的答案()的信息,提供了一个简单的指南:)

1) 将secrets.yml复制到另一个名为secrets\u backup.yml的文件中

您现在应该有两个与secrets.yml内容相同的文件

2) 将
secrets\u backup.yml
添加到您的.gitignore

3) 将
secrets.yml
中的文本更改为以下内容

development:
  secret_key_base: <%= ENV["SECRET_KEY_BASE_DEV"] %>
test:
  secret_key_base: <%= ENV["SECRET_KEY_BASE_TEST"] %>
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
开发:
机密密钥库:
测试:
机密密钥库:
制作:
机密密钥库:
4)
cd
到命令行上的rails项目文件夹

5) 在终端类型heroku config:set SECRET\u KEY\u BASE\u TEST=
中, 其中,
应从
机密备份.yml中的
测试:机密密钥库:
复制并粘贴

6) 在终端类型heroku config:set SECRET\u KEY\u BASE\u DEV=
中, 其中
应从
机密备份.yml中的
开发:机密密钥库:
中复制和粘贴

7) 我的
secrets.yml
文件已经有了密钥库而不是实际密钥,所以我怀疑你的也会有。但如果没有,请将SECRET_KEY_BASE变量设置为上面设置的其他两个变量

8) 将回购协议推送到GitHub和Heroku


9) 微笑吧,因为你是G.O.A.T,展示你甜蜜的网站

错别字,应该是而不是,所以我实际上在我的计算机上创建并保存了一个环境变量。如果关闭然后打开bash,我需要为我的机器再次设置变量吗?如果我关闭并打开电脑怎么办?此命令将在heroku设置并应用你的应用程序上的配置变量。因此,您设置的env var将保留在Heroku上,而不是本地shell上。因此,我只需按原样将secrets.yml文件上载到github,使用
。导出行的作用是什么?理想情况下,secrets.yml不应该在github上,因为它通常包含敏感数据(但这是您的决定,它是否机密)。但是我建议您使用您提到的
heroku_secrets
gem,而不是将secrets.yml推送到github。导出行是如何设置shell会话环境变量.well crap的。我知道这一切应该如何运作,但我无法让它运作=(
RAILS_ENV=production rails s
heroku config:set SECRET_KEY_BASE=yourkeybasehere
production:
  secret_key_base: yourkeybasehere
<!DOCTYPE html>
<html>
<head>
  <title><%= ENV['USERNAME'] %></title>
</head>
<body>

<%= yield %>

</body>
</html>
development:
  secret_key_base: <%= ENV["SECRET_KEY_BASE_DEV"] %>
test:
  secret_key_base: <%= ENV["SECRET_KEY_BASE_TEST"] %>
production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>