Docker撰写嵌套环境变量

时间:2017-08-25 20:50:09

标签: docker asp.net-core environment-variables docker-compose

我有一个使用app配置文件的现有应用程序,如下所示:

"ConnectionInfo": {
    "ServerName": "The Server URL",
    "DatabaseName": "The DatabaseName",
    "UserName": "The User Name",
    "Password": "The Password"}

现在,当我有一个简单的设置时,请说

"ConnectionString":"My Connection String"

我理解如何在compose.yml文件中覆盖它:

environment:
  - ConnectionString=what I want it to be

问题是,如何在顶部设置服务器名称?

2 个答案:

答案 0 :(得分:3)

请使用下划线(__)代替冒号(:)。

environment:
  - ConnectionInfo__ServerName=MyServerName

请参阅Configuration in ASP.NET Core

  

对于环境变量中指定的分层配置值,a   冒号(:)可能无法在所有平台上运行。双下划线(__)是   所有平台都支持。

答案 1 :(得分:2)

您可以使用冒号设置嵌套配置以分隔嵌套部分:

在此处设置服务器名称:

"ConnectionInfo": {
    "ServerName": "override this via compose environment"
}

像这样覆盖它:

environment:
  - ConnectionInfo:ServerName=MyServerName