2016-07-28 70 views
1

我剛剛學習Phoenix和Elixir我很困惑,處理多個機器和環境的環境變量的最佳方法是什麼?我一直使用不同的方法,從使用System.get_env,.env文件和提及Mix env's。我還會繼續閱讀關於在部署時編譯env變量的問題。Pheonix框架環境變量

有沒有人有解釋如何混合變量,系統環境變量和可能的.env文件或.secret文件應該用於本地開發,舞臺和生產服務器?

我一直主要在Rails和Python中工作,所以這可能是一個有用的上下文片段。

感謝您的幫助, 科裏

回答

0

我個人堅持什麼鳳凰默認情況下給你,例如使用不同環境的配置文件。由於配置文件是用於應用程序配置的,例如配置數據庫適配器,它們被檢入到源代碼控制中。默認情況下,這些由MIX_ENV環境變量控制。如果你看一下你的主要config/config.exs文件的底部,你會發現這一點:

import_config "#{Mix.env}.exs" 

從我從documentation瞭解,Mix.env僅僅是用於獲取MIX_ENV值的簡寫。

Phoenix自帶配置文件用於「開發」,「產品」和「測試」(全部位於config目錄中),您可以自行修改該文件。您還可以輕鬆添加更多配置 - 例如,如果您想要具有「分段」特定配置,則只需在相關服務器上設置MIX_ENV=staging,然後創建config/staging.exs即可。

對於敏感信息,如API密鑰,環境變量更好,因爲它們沒有簽入源代碼管理並且可以輕鬆更改。您可以從配置文件或應用程序中的任何位置訪問這些env變量。

希望有幫助!