• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

docker - 在 .NET Core 中将应用设置与环境变量合并

[复制链接]
菜鸟教程小白 发表于 2022-8-3 10:13:41 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在 Docker 中(在 Kubernetes 中)运行一个 .NET Core 应用程序,将环境变量传递给 Docker 容器并在我的应用程序中使用它们。

在我的 .NET Core 应用程序中,我有以下 C# 类:


然后我设置了我的 appsettings像这样:


DI设置:


在我的 Controller 中,我这样使用它:


我运行 docker :
docker run -p 4000:5000 --env-file=myvariables

文件myvariables看起来像这样:
EXAMPLE_SETTING=example!!!
MY_SETTING_2=my-setting-2!!!!

这有效。我可以用我的 _environmentConfiguration并看到我的变量已设置。

但是...我想将环境变量与 appsettings 合并,以便在找不到环境变量时将 appsettings 中的值用作后备。以某种方式合并这两行:


这有可能吗?

我的后备计划是从 EnvironmentConfiguration 继承类并使用单独的 DI 注入(inject)两个单独的配置,然后在代码中“手动”合并它们,但这种解决方案是不可取的。



Best Answer-推荐答案



实际上足以使用环境变量覆盖 appsettings 值。

假设您的 appsettings.json 文件中有以下内容;


您可以覆盖 Logging.Level 的值通过设置名为 Loggingevel 的环境变量到您的偏好值。

请注意 :用于在环境变量键中指定嵌套属性。

另请注意:来自 docs ;

If a colon ( can't be used in environment variable names on your system, replace the colon ( with a double-underscore (__).

关于docker - 在 .NET Core 中将应用设置与环境变量合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298284/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap