Переменные среды ASP.NET Core Docker, если применяются миграции - PullRequest
0 голосов
/ 08 июня 2018

У меня есть приложение ASP.NET Core, работающее в Docker, и мне нужно передать в контейнер (при запуске) переменную bool, чтобы не применять миграцию.

Например:

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

 ...
}

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете использовать переменную конфигурации, значение которой будет переопределено переменной среды при запуске.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...