![](/img/trans.png)
[英]does anyone know how to pass environment variables from appSetting.json to a docker windows container?
[英]How to pass multiple environment variables to a docker container?
我第一次與 docker 合作,我正試圖弄清楚這一切。
在我正在使用的這個項目中,我們廣泛使用 Windows 環境變量在我們的啟動文件中使用。 並將它們放入我們的配置中,我們使用 AddEnvironmentVariables(string prefix) 方法,如下所示:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration(builder =>
{
builder.AddEnvironmentVariables(prefix: "MICROSVC_")
.AddJsonFile("appsettings.json");
})
.UseStartup<Startup>();
在 localhost 和 Azure 中,這沒有問題,因為我們已將它們添加到這些環境中。 但看在上帝的份上,我無法弄清楚如何在我的 docker 容器中配置這些環境變量。 我已經看到您可以在運行命令中使用 -e 來執行此操作,但是這樣傳遞的變量太多了。
有很多方法。 查看Compose 中的環境變量。
這里有四個來自這個來源。
Compose file
Shell environment variables
Environment file
Dockerfile
這個 SO Q&A還提供了一些在運行容器中設置環境變量的建議。
正如 Kit 所回答的那樣,存在許多方法來設置 Docker 容器(例如docker-compose
或kubernetes
)的部署,但是如果您想啟動一個容器,則可以使用-e
參數重復傳遞多個環境變量。
docker run -it -e VAR_A=12 -e VAR_B=13 alpine sh
其中alpine
容器圖像是和sh
一個 shell 在此容器中以交互方式( -it
)啟動。
在這個啟動的容器中,您可以鍵入set
並查看兩個變量VAR_A
和VAR_B
已定義和設置。
您可以通過鍵入exit
命令離開已啟動的容器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.