2016-01-21 39 views
0

tldr:在部署到雲時將安全證書放在哪裏的最佳做法是什麼?如何爲Git和雲部署使用環境變量

我試圖在Heroku上部署我的第一個MEAN應用程序。 (這是我第一次編寫Node應用程序,或者試圖部署任何東西到雲端,所以請耐心等待。)我的應用程序在本地運行,但是我的Mongo連接字符串(使用MongoLab)當前很難編碼成js文件。我不希望該字符串顯示在我的公共Git存儲庫中,因此我現在已將它添加到我的.gitignore中。

在Heroku中,看起來部署過程涉及到指向git存儲庫並讓服務器從那裏拉下所有代碼並運行它。這顯然目前不適用於我,因爲Mongo連接字符串不在回購中。

我假設我應該使用環境變量對於這一點,我知道如何閱讀環境節點乏,但我對如何首先設置這些變量非常不清楚。我知道在運行Node應用程序時,您可以在命令行設置環境變量,但每次重新啓動應用程序時都必須執行此操作,這似乎很麻煩,而且我猜測還有更好的方法來執行此操作。我還不清楚如何在Heroku中設置環境變量,我似乎無法找到關於如何執行這些任何一項的很好的文檔或教程。我錯過了什麼,或者我首先看錯了範例?

+1

您應該閱讀[Heroku配置](https://devcenter.heroku.com/articles/config-vars)的文檔。 – dirn

回答

1

想到我會發布我的調查結果給下一個人看這個。

我遇到的問題不是具體問題,而是這樣做背後的一般想法。總之,Heroku允許您使用名爲「.env」的本地文件,您可以在其中設置環境變量。 (格式爲VAR_NAME="value")。然後,當您從命令行運行「heroku local」時,Heroku會在一個抓取這些變量的環境中啓動您的應用程序,並將它們傳遞給應用程序,位於localhost:5000。您只需將.env文件添加到.gitignore中,並且它不在您的代碼中。

對於實際部署(通過您的git存儲庫),Heroku有一個Web UI,您可以在其中設置配置變量(據我所知,它與環境變量同義)。一旦您使用heroku create並將存儲庫推送到已創建的遠程倉庫,此UI就可用。您也可以通過命令行設置遠程環境變量,如@metame所述。

+0

當使用heroku時很好理解。在本地運行時,對內部變量很好的內置支持。 – metame

0

您可以使用像process-env這樣的環境變量管理器在腳本中設置環境變量,以便手動/本地地運行您的應用程序。

對於Heroku,documentation指定使用他們的heroku-toolbet命令行工具。使用heroku config:set VAR_NAME=value來設置一個環境變量。

+0

感謝您的幫助。 – CrookedGrin

+0

請參閱我上面的回答。 – CrookedGrin