为什么给docker设置环境变量,.NET CORE配置文件能读取到
CreateDefaultBuilder 按照以下顺序为应用提供默认配置:
- ChainedConfigurationProvider:添加现有
IConfiguration
作为源。 在默认配置示例中,添加主机配置,并将它设置为应用配置的第一个源。 - 使用 JSON 配置提供程序的 appsettings.json。
- 使用 JSON 配置提供程序通过 appsettings.
Environment
.json 提供 。 例如,appsettings.Production.json 和 appsettings.Development.json 。 - 应用在
Development
环境中运行时的应用机密。 - 使用环境变量配置提供程序通过环境变量提供。
- 使用命令行配置提供程序通过命令行参数提供。
后来添加的配置提供程序会替代之前的密钥设置。 例如,如果 appsettings.json 和环境中都设置了 MyKey
,则使用环境值。 使用默认配置提供程序,命令行配置提供程序将替代所有其他的提供程序。
所以,.NET CORE最终会读取环境变量的内容,如果你使用的是docker的network进行容器之间的通信,相当于host解析,会自动解析出其容器的IP。
拷贝于:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration/?view=aspnetcore-5.0#cp