我使用GitHub作为代码,Heroku作为我的rails应用程序的部署平台。使用敏感的设置信息部署到Heroku
我不想在Git下有敏感数据。这些数据包括数据库文件设置(database.yml)和一些其他具有秘密API密钥的文件。
当我部署到heroku时,如何处理不受版本控制的文件。
当我使用Capistrano时,我可以编写一些钩子方法,但我不知道如何处理Heroku。
我使用GitHub作为代码,Heroku作为我的rails应用程序的部署平台。使用敏感的设置信息部署到Heroku
我不想在Git下有敏感数据。这些数据包括数据库文件设置(database.yml)和一些其他具有秘密API密钥的文件。
当我部署到heroku时,如何处理不受版本控制的文件。
当我使用Capistrano时,我可以编写一些钩子方法,但我不知道如何处理Heroku。
对于Heroku上,你需要有database.yml
下的Git的Heroku因为会自动读取并从它创建一个PostgreSQL配置。
对于其他敏感信息,如API密钥,Heroku提供了配置变量,这些是有效的环境变量。您可以通过添加它们:
heroku config:add KEY=value
—和使用您的应用程序中访问它们:
ENV['KEY']
注意配置瓦尔可以列出,添加和使用heroku
命令行程序中删除,并且一旦设定他们是持久的。
我会创建一个本地分支,我们称它为SECRET,然后在那里进行'秘密'修改。提交它们,不要将它们推送到github。
现在只需结账并继续在主分支上工作直到准备发布。
要准备发布检出SECRET分支,将主分支合并到它,并像往常一样推送到heroku。
(顺便说一句:我总是忘记切换回工作分支,git的藏匿处是你在这种情况下的朋友)
你会如何处理例如与.pem证书文件?我需要多达4个RSA密钥为贝宝等,我想承诺heroku,但不是github。 – tmaximini 2013-04-22 15:38:47