簡體   English   中英

如何使用環境變量進行Git和雲部署

[英]How to use environment variables for Git and cloud deployment

tldr:在部署到雲時將安全憑據之類的東西放在哪里的最佳實踐是什么?

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

在Heroku中,部署過程似乎涉及指向git存儲庫並讓服務器從那里拉下所有代碼並運行它。 由於Mongo連接字符串不在存儲庫中,因此當前這顯然對我不起作用。

我假設我應該為此使用環境變量,並且我知道如何在Node中讀取環境變量,但是我不清楚如何首先設置這些變量。 我知道您可以在運行Node應用程序時在命令行中設置環境變量,但是每次我重新啟動該應用程序時都必須這樣做,這看起來很麻煩,而且我猜想還有一種更好的方法。 我也不清楚如何在Heroku中設置環境變量,而且我似乎找不到關於如何執行這些操作的有效文檔或教程。 我是否缺少某些東西,或者我最初是在看錯誤的范例?

以為我會把我的發現發布給下一個人查一下。

我遇到的麻煩不是細節,而是這樣做的總體思路。 總而言之,Heroku允許您使用一個名為“ .env”的本地文件,您可以在其中設置環境變量。 (格式為VAR_NAME="value" )。 然后,當您從命令行運行“ heroku local”時,Heroku將在可捕獲這些變量並將其傳遞到localhost:5000的環境中啟動您的應用程序。 您只需將該.env文件添加到.gitignore中,它就不會出現在代碼中。

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

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

對於Heroku, 文檔指定使用其heroku-toolbet命令行工具。 使用heroku config:set VAR_NAME=value設置環境變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM