为什么给docker设置环境变量,.NET CORE配置文件能读取到

CreateDefaultBuilder 按照以下顺序为应用提供默认配置:

  1. ChainedConfigurationProvider:添加现有 IConfiguration 作为源。 在默认配置示例中,添加主机配置,并将它设置为应用配置的第一个源。
  2. 使用 JSON 配置提供程序的 appsettings.json
  3. 使用 JSON 配置提供程序通过 appsettings.Environment.json 提供 。 例如,appsettings.Production.json 和 appsettings.Development.json 。
  4. 应用在 Development 环境中运行时的应用机密
  5. 使用环境变量配置提供程序通过环境变量提供。
  6. 使用命令行配置提供程序通过命令行参数提供。

后来添加的配置提供程序会替代之前的密钥设置。 例如,如果 appsettings.json 和环境中都设置了 MyKey,则使用环境值。 使用默认配置提供程序,命令行配置提供程序将替代所有其他的提供程序。

 

所以,.NET CORE最终会读取环境变量的内容,如果你使用的是docker的network进行容器之间的通信,相当于host解析,会自动解析出其容器的IP。

 

拷贝于:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration/?view=aspnetcore-5.0#cp

posted @ 2021-07-07 18:19  老铁你咋这么肥  阅读(534)  评论(0编辑  收藏  举报