ASP.NET核心Docker环境变量(如果应用迁移)

ASP.NET核心Docker环境变量(如果应用迁移),docker,asp.net-core,Docker,Asp.net Core,我有一个ASP.NET核心应用程序在Docker中运行,我需要(在开始时)向容器传递一个bool变量,以确定是否启用该变量以应用迁移 例如: public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if(newDB) Seed(true); else Seed(false); ... } 您可以使用配置变量,该变量的值将在运行时被环境变量覆盖 public Startup(I

我有一个ASP.NET核心应用程序在Docker中运行,我需要(在开始时)向容器传递一个bool变量,以确定是否启用该变量以应用迁移

例如:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
  if(newDB)
    Seed(true);
  else
    Seed(false);

 ...
}

您可以使用配置变量,该变量的值将在运行时被环境变量覆盖

public Startup(IHostingEnvironment env)
    {
        var builder = new ConfigurationBuilder()
           .SetBasePath(env.ContentRootPath)
           .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
           .AddEnvironmentVariables("APP_");

        Configuration = builder.Build();
    }

public IConfigurationRoot Configuration { get; }

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
   var newDB = Convert.ToBoolean(Configuration["NewDB"]));
(...)
appsettings.json:

{
  "Logging": {
    (..)
   },
  "NewDB": false
}
运行集装箱通行证时:
docker run-e APP_NewDB='true'…

我收到一个异常,说未处理的异常:System.FormatException:无法解析JSON文件。第27行错误:'},…。json文件中是否缺少任何逗号?如果可以,请共享它。{“Logging”:{“IncludeScopes”:false,“LogLevel”:{“Default”:“Warning”},{“NewDB”:false}您不应该在NewDB参数周围使用另一个大括号-大括号表示另一个结构,并且您没有命名它,因此出现了错误。更正一条:
{“Logging”:{“IncludeScopes”:false,“LogLevel”:{“Default”:“Warning”}},“NewDB”:false}