If using containerise, then use the system env, don't use appsettings json.
C Sharp
A community about the C# programming language
Getting started
Useful resources
- C# documentation
- C# Language Reference
- C# Programming Guide
- C# Coding Conventions
- .NET Framework Reference Source Code
IDEs and code editors
- Visual Studio (Windows/Mac)
- Rider (Windows/Mac/Linux)
- Visual Studio Code (Windows/Mac/Linux)
Tools
Rules
- Rule 1: Follow Lemmy rules
- Rule 2: Be excellent to each other, no hostility towards users for any reason
- Rule 3: No spam of tools/companies/advertisements
Related communities
As @[email protected] said you can use multiple configuration providers. We usually have local appsettings.json
files, even per machine appsettings.<HOSTNAME>.json
and then use Environment Variables that are stored in a vault for the production environment. We add the appsettings.<HOSTNAME>.json
files to .gitignore
so that they don't get checked in.
var env = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
configuration.AddJsonFile($"appsettings.{env}.json", optional: true, reloadOnChange: true);
configuration.AddJsonFile($"appsettings.{Environment.MachineName}.json", optional: true, reloadOnChange: true);
configuration.AddEnvironmentVariables();
Then you can provide the secrets as environment variables in the form of DATA__ConnectionString
Using DI you can register multiple configuration providers with different priorities. What's common is to have an local.appsetting.json for development and have production setup with environment variables. But you can use any combination of providers.