ASP.NET Core Docker环境变量,如果应用迁移

时间:2018-06-08 12:02:25

标签: docker asp.net-core

我在Docker中运行了一个ASP.NET Core应用程序,我需要将一个bool变量传递给容器(在开始时)是否应用迁移。

例如:

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

 ...
}

1 个答案:

答案 0 :(得分:1)

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

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' ...