allow servers to read appsettings from different location

This commit is contained in:
Stanley Dimant
2024-10-20 01:06:54 +02:00
parent 561e48510b
commit 475892dd46
5 changed files with 72 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
{
"version": 1,
"isRoot": true,
"tools": {
"dotnet-ef": {
"version": "8.0.10",
"commands": [
"dotnet-ef"
],
"rollForward": false
}
}
}

View File

@@ -27,6 +27,20 @@ public class Program
return Host.CreateDefaultBuilder(args) return Host.CreateDefaultBuilder(args)
.UseSystemd() .UseSystemd()
.UseConsoleLifetime() .UseConsoleLifetime()
.ConfigureAppConfiguration((ctx, config) =>
{
var appSettingsPath = Environment.GetEnvironmentVariable("APPSETTINGS_PATH");
if (!string.IsNullOrEmpty(appSettingsPath))
{
config.AddJsonFile(appSettingsPath, optional: true, reloadOnChange: true);
}
else
{
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
}
config.AddEnvironmentVariables();
})
.ConfigureWebHostDefaults(webBuilder => .ConfigureWebHostDefaults(webBuilder =>
{ {
webBuilder.UseContentRoot(AppContext.BaseDirectory); webBuilder.UseContentRoot(AppContext.BaseDirectory);

View File

@@ -68,6 +68,20 @@ public class Program
return Host.CreateDefaultBuilder(args) return Host.CreateDefaultBuilder(args)
.UseSystemd() .UseSystemd()
.UseConsoleLifetime() .UseConsoleLifetime()
.ConfigureAppConfiguration((ctx, config) =>
{
var appSettingsPath = Environment.GetEnvironmentVariable("APPSETTINGS_PATH");
if (!string.IsNullOrEmpty(appSettingsPath))
{
config.AddJsonFile(appSettingsPath, optional: true, reloadOnChange: true);
}
else
{
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
}
config.AddEnvironmentVariables();
})
.ConfigureWebHostDefaults(webBuilder => .ConfigureWebHostDefaults(webBuilder =>
{ {
webBuilder.UseContentRoot(AppContext.BaseDirectory); webBuilder.UseContentRoot(AppContext.BaseDirectory);

View File

@@ -31,6 +31,20 @@ public class Program
Host.CreateDefaultBuilder(args) Host.CreateDefaultBuilder(args)
.UseSystemd() .UseSystemd()
.UseConsoleLifetime() .UseConsoleLifetime()
.ConfigureAppConfiguration((ctx, config) =>
{
var appSettingsPath = Environment.GetEnvironmentVariable("APPSETTINGS_PATH");
if (!string.IsNullOrEmpty(appSettingsPath))
{
config.AddJsonFile(appSettingsPath, optional: true, reloadOnChange: true);
}
else
{
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
}
config.AddEnvironmentVariables();
})
.ConfigureWebHostDefaults(webBuilder => .ConfigureWebHostDefaults(webBuilder =>
{ {
webBuilder.UseContentRoot(AppContext.BaseDirectory); webBuilder.UseContentRoot(AppContext.BaseDirectory);
@@ -39,6 +53,9 @@ public class Program
builder.AddConfiguration(ctx.Configuration.GetSection("Logging")); builder.AddConfiguration(ctx.Configuration.GetSection("Logging"));
builder.AddFile(o => o.RootPath = AppContext.BaseDirectory); builder.AddFile(o => o.RootPath = AppContext.BaseDirectory);
}); });
webBuilder.ConfigureKestrel((opt) =>
{
});
webBuilder.UseStartup<Startup>(); webBuilder.UseStartup<Startup>();
}); });
} }

View File

@@ -35,6 +35,20 @@ public class Program
return Host.CreateDefaultBuilder(args) return Host.CreateDefaultBuilder(args)
.UseSystemd() .UseSystemd()
.UseConsoleLifetime() .UseConsoleLifetime()
.ConfigureAppConfiguration((ctx, config) =>
{
var appSettingsPath = Environment.GetEnvironmentVariable("APPSETTINGS_PATH");
if (!string.IsNullOrEmpty(appSettingsPath))
{
config.AddJsonFile(appSettingsPath, optional: true, reloadOnChange: true);
}
else
{
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
}
config.AddEnvironmentVariables();
})
.ConfigureWebHostDefaults(webBuilder => .ConfigureWebHostDefaults(webBuilder =>
{ {
webBuilder.UseContentRoot(AppContext.BaseDirectory); webBuilder.UseContentRoot(AppContext.BaseDirectory);