docker compose环境变量到IConfiguration,怎么办?

docker compose environment variable to IConfiguration, how to do?

我正在使用 docker 撰写文件来保留所有环境变量,

environment:
  - Instance=https://login.microsoftonline.com/
  - ClientId=xxxxxxxx

我可以在我的 asp.net 核心网络 api 应用程序 statrtup class 中访问这些变量,如下所示,

var instance = Environment.GetEnvironmentVariable("Instance")
var clientId = Environment.GetEnvironmentVariable("ClientId")

statrtup class 中,我可以将下面的整个 IConfiguration 发送到某些方法,例如

services.AddProtectedWebApi(Configuration);

它会自动读取我在 appsettings.json

AzureAd 部分配置的所有配置
"AzureAd": {
"Instance": "https://login.microsoftonline.com/",
"ClientId": "xxxxxxxxxxxxxxxxxxxxxx",
"Domain": "xxxxxxxxxxxxxxxxxxxxxxxxx",
"TenantId": "xxxxxxxxxxxxxxxxxxxxxxx"

},

现在我的问题是,我们如何读取环境变量(而不是 appsettings.json)并使用配置部分 IConfiguration 准备 AzureAd

您应该使用以下带前缀的环境变量名称:

environment:
- AzureAd__Instance=https://login.microsoftonline.com/
- AzureAd__ClientId=xxxxxxxx

覆盖appsettings.json