簡體   English   中英

如何將多個環境變量傳遞給 docker 容器?

[英]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-composekubernetes )的部署,但是如果您想啟動一個容器,則可以使用-e參數重復傳遞多個環境變量。

docker run -it -e VAR_A=12 -e VAR_B=13 alpine sh

其中alpine容器圖像是和sh一個 shell 在此容器中以交互方式( -it )啟動。

在這個啟動的容器中,您可以鍵入set並查看兩個變量VAR_AVAR_B已定義和設置。

您可以通過鍵入exit命令離開已啟動的容器。

暫無
暫無

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

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