如何在没有两个存储库的情况下在git中部署期间更改配置文件

如何在没有两个存储库的情况下在git中部署期间更改配置文件,git,webpack,gruntjs,grafana,Git,Webpack,Gruntjs,Grafana,我正在将Grafana项目用于我的仪表板。我必须进行2次Grafana部署,并对标题、图像等进行轻微更改。因此,以前我有2个存储库。现在我已经创建了两个json配置文件,其中包括对json的更改。所以现在我阅读这个json来获得正确的值来替换标题、图像和其他内容。这是由我在Grafana中编写的定制服务完成的 我的2个配置文件名如下: grafana.productA.config.json grafana.productB.config.json 我正在Gitlab中使用CI/CD进行部署。我

我正在将Grafana项目用于我的仪表板。我必须进行2次Grafana部署,并对标题、图像等进行轻微更改。因此,以前我有2个存储库。现在我已经创建了两个json配置文件,其中包括对json的更改。所以现在我阅读这个json来获得正确的值来替换标题、图像和其他内容。这是由我在Grafana中编写的定制服务完成的

我的2个配置文件名如下:

grafana.productA.config.json

grafana.productB.config.json

我正在Gitlab中使用CI/CD进行部署。我要做的是选择正确的配置文件并将其重命名为grafana.prod.config.json,然后将该文件与grafana构建捆绑在一起。有谁能告诉我如何实现这一点吗?

许多人更喜欢通过环境变量进行配置,因为它简单明了,而且所有语言都支持开箱即用的配置。在Go中,您可以简单地调用以获取环境变量的值

DEV
PROD
这样的环境以及一些参数通常通过环境变量提供给应用程序,因此通常不需要配置文件。如果存在扩展配置,则该配置本身(如果不是太大)也可能位于环境变量中,例如,以base64编码形式

如果无法将配置文件放在环境变量中,请将其名称放在环境变量中,例如,出于开发/CI目的,将其名称放在
config_文件=grafana.productA.config.json
中,并在生产服务器中设置
config_文件=grafana.productB.config.json
。因此,您的应用程序可以加载相应的配置文件


如果配置包含敏感信息(如密码或私钥),则将这些信息“外包”到环境变量中,这些环境变量在您的每个环境(如dev、CI、prod)中都可能不同。

Grafana有一个用于配置的.ini文件。如果我想覆盖默认值,我必须创建一个cutom.ini文件并覆盖默认值,但它没有说明添加任何新的自定义配置。这就是你所说的env文件吗?@simplelenz你在问题中写道:“我正在阅读这个json以获得正确的值…”。您可以使用环境变量来决定读取哪个JSON文件。