我有一个由 Heroku 托管的 Rails 4 应用程序。
鉴于我正在从事一个开源项目,有几个未版本化的文件包含 .gitignore
中列出的敏感信息。例如,我在应用程序的根目录下有一个 .secret
文件,其中包含用于加密 cookie 的 key 。我通过运行 rake secret
命令创建了这个文件。
我的问题是我无法将此文件发送到我的 heroku 应用程序,因为它没有版本控制,它不包含在部署中。此外,我正在使用 Github,不能冒险在提交历史记录中公开披露我的 key 。
我尝试使用 heroku run
命令创建文件(heroku run 'rake secret > .secret'
无济于事)。我尝试使用 heroku run bash
连接终端,但由于文件系统是临时的,所以当我退出终端时我的更改不会保留。
您知道如何在 Heroku 应用程序上实现非版本控制文件吗?
最佳答案
secret 数据( key 、密码等)应作为配置变量存储在 Heroku 上。然后通过代码中的 ENV
哈希访问它们。
如果你使用类似 figaro 的东西,您可以将这些变量放在 application.yml 中(不要提交文件)
应用程序.yml:
SECRET_KEY: my_secret_key
Figaro 然后有一个 rake 任务将这些推送到 heroku:
rake figaro:heroku
或者,您可以手动设置它们:
heroku config:set SECRET_KEY=my_secret_key
最后,在您的应用中访问它们:
ENV['SECRET_KEY']
关于ruby-on-rails - Heroku:上传单个未版本化的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22179453/