2015-11-05 301 views
1

我有一個內置於Docker鏡像中的Node.js應用程序。在這個應用程序中,我有一個配置文件,其中包含一些可能會隨時更改的API url(例如API密鑰)。是否有可能通過一些附加參數啓動Docker鏡像,然後從node.js代碼中訪問這個參數(我認爲這可以通過使用環境變量來完成),以便每次此參數的值不應該重新生成鏡像被改變。這是可用於我假設的僞代碼:Node.js Docker鏡像環境變量

docker run -p 8080:8080 paramApiKey="12345" mydockerimage 

,然後我想從Node.js的應用程序訪問它:

var apiKey = process.env.paramApiKey 

可這在某種程度上可以實現嗎?

回答

3

爲了在您使用run命令的時間與搬運工來定義environment variables,你必須使用-e標誌和格式應爲"name=value",也就是說你的ENV變量應爲"paramApiKey=12345",以便您可以通過在應用程序中執行process.env.paramApiKey來訪問它。

話雖這麼說,你的命令如下所示:

docker run -p 8080:8080 -e "paramApiKey=12345" mydockerimage 
+0

你有沒有辦理環境變量一長串的想法? – Sachacr

+1

@Sachacr:將它們放到文件中並使用'--env-file',參見https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables--e--- env --- env-file – JakubM

+0

如果某些變量是密碼和JWT密碼哈希值? –

1

當然,只是嘗試:

docker run -p 8080:8080 -e "paramApiKey=12345" mydockerimage