Go 配置文件掩码

Go 配置文件掩码,go,configuration,12factor,viper,Go,Configuration,12factor,Viper,我们使用Marathon将服务部署为docker容器。这些容器包括一个基本配置文件,一个环境配置文件(其中包含基本密钥的一个子集),因此当应用程序启动时,它有 环境.toml config.toml 在读取配置时,我们需要将两个文件中的值合并到一个集合中,有效地将两个文件中的值与环境文件中的值屏蔽/隐藏 我在Viper文档中没有找到此功能。除非我错过了什么,否则我的选择是 编写一个包,使用Viper读取这两个文件并执行合并 伸出毒蛇 在我开始编写代码之前,是否已经有了这样做的机制?我没有

我们使用Marathon将服务部署为docker容器。这些容器包括一个基本配置文件,一个环境配置文件(其中包含基本密钥的一个子集),因此当应用程序启动时,它有

  • 环境.toml
  • config.toml
在读取配置时,我们需要将两个文件中的值合并到一个集合中,有效地将两个文件中的值与环境文件中的值屏蔽/隐藏

我在Viper文档中没有找到此功能。除非我错过了什么,否则我的选择是

  • 编写一个包,使用Viper读取这两个文件并执行合并
  • 伸出毒蛇

在我开始编写代码之前,是否已经有了这样做的机制?

我没有使用viper读取文件,我只是在cobra后面使用它来解析配置标志。然而,我像使用
serverCmd.Flags().StringVarP(&Cfg.binddress,“bind”,“b”,“0.0.0”,“listen接口”)
一样使用它,也许您可以类似地将两个配置的值写入共享指针?