Hi all! Trying to work with small pet project for myself. So I use few asp net core apps + db in docker and docker compose. And I little confuse about storing configuration (like for logging or db connection etc). Where is best place to store it? Continue use app.json or move .env files (enviroments variables)
I guess .env files more easy to configure f.e. on CI\CD So whatis a better?
As @nibblebit@programming.dev said you can use multiple configuration providers. We usually have local
appsettings.json
files, even per machineappsettings.<HOSTNAME>.json
and then use Environment Variables that are stored in a vault for the production environment. We add theappsettings.<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