2014-11-21 48 views

回答

0

您有一些選擇。

  • 使用環境變量:您可以在本地計算機和生產計算機上設置環境變量。在您的應用程序中,您將通過執行以下操作讀取這些變量:<%= ENV['my_var'] %>。這樣做,您可以將您的應用程序提交到公共回購站,而無需擔心暴露密碼和密鑰等敏感信息。例如,設置DB_PASSWORD環境變種來存儲您的數據庫密碼,然後在你的database.yml你能讀懂它這樣做的:password: <%= ENV['db_password'] %>

  • 您可以使用寶石鏈接dotenv(https://github.com/bkeepers/dotenv)或費加羅(https://github.com/laserlemon/figaro):通過使用這些寶石你不需要在你的機器上手動設置環境變量,你可以用.env文件來定義它們。您可以使用<%= ENV['my_var'] %>以相同的方式閱讀它們。您必須忽略.gitignore中的.env文件,並告訴capistrano在您的生產服務器上從您的.env文件讀取創建環境變量。

  • 另一種選擇是爲開發和生產製作不同的配置文件,並在.gitignore中忽略它們。您可以將配置生產文件存儲在不同的回購站中,並在部署時在您的計算機上進行更新。在生產服務器上更新應用回購之後,您只需將您的配置文件從本地機器複製到生產服務器(https://coderwall.com/p/wgs6gw/copy-local-files-to-remote-server-using-capistrano-3)。

最後一種選擇是我最常用的一種(在我的例子中,我使用ansible來代替capistrano)。

如果你想看到一個例子,我有一個應用程序,目前在生產運行的部署任務,你可以退房:

希望我讓自己清楚,你明白了。

相關問題