2011-10-07 75 views
16

我製作了一個Sinatra應用程序,將在Heroku上託管,並且源代碼將在GitHub上運行。問題是我有一個帶API密鑰的文件,目前在.gitignore中。有沒有辦法,我可以推動我的回購與密鑰文件heroku和推送到GitHub時排除文件?將.gitignore文件推送到特定的遠程

在此先感謝!

回答

15

有可能維持只是部署一個獨立的分支,但它需要多學科正確地維護它:

  1. 添加提交到生產分支,增加了配置文件(git add -f到bybass您排除)。
  2. 若要更新您的生產分公司,請將其他分公司(例如主公司)合併到其中。
    然而,你必須永不合併你的生產分支到其他任何東西,或基於任何「生產承諾」(其祖先包括你的「添加鍵」提交)開始分支。

一個更簡單的方法是採用Heroku的使用環境變量將您的祕密值傳達給您的實例的習慣。請參閱該文檔上Configuration and Config Vars

heroku config:add KEY1=foobar KEY2=frobozz 

然後通過ENV['KEY1']ENV['KEY2']訪問您的初始化代碼值或任何你需要他們。爲了支持您的非Heroku部署,您可以定義相同的環境變量,或者如果環境變量不存在,則可以退回到讀取現有配置文件。

+0

謝謝你,heroku envvars是要走的路:) – skazhy

+0

除了環境變量,你可能需要「https://devcenter.heroku.com/articles/labs-user-env-compile」,如果你的變量在子彈編制期間需要被訪問。 –

3

Figaro gem提供了一種管理此問題的好方法。它基本上在本地模擬Heroku的環境變量方法,並使您的開發環境和Heroku之間的密鑰保持同步變得容易。