我在Docker中运行了一个ASP.NET Core应用程序,我需要将一个bool变量传递给容器(在开始时)是否应用迁移。
例如:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if(newDB)
Seed(true);
else
Seed(false);
...
}
答案 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' ...