如何在git部署过程中更改配置文件而没有两个存储库

问题描述 投票:2回答:1

我正在将Grafana项目用于我的仪表板。我必须做2个Grafana部署,并且要稍作更改,例如标题,图像等。由于这个原因,以前我有2个存储库。现在,我创建了2个配置文件,它们是json并包含对它的更改。因此,现在我正在阅读此json,以获取替换标题,图像和内容的正确值。这是由我在Grafana中编写的自定义服务完成的。

我的2个配置文件名称如下;

grafana.productA.config.json

grafana.productB.config.json

我正在Gitlab中使用CI / CD进行部署。我要做的是选择正确的配置文件并将其重命名为grafana.prod.config.json并将此文件与Grafana构建捆绑在一起。谁能给我一个关于如何实现这一目标的想法?

git go webpack gruntjs grafana
1个回答
2
投票

许多PaaS更喜欢通过环境变量进行配置,因为它很容易直接,并且所有语言都开箱即用地支持它们。在Go中,您可以简单地调用os.Getenv()来获取环境变量的值。

os.Getenv()DEV之类的环境以及一些参数通常是通过环境变量提供给应用程序的,因此通常不需要配置文件。如果存在广泛的配置,则其本身(如果不是太大)也可以位于环境变量中,例如以base64编码的形式。

如果无法将配置文件放入环境变量中,则将其名称放入一个环境变量中,例如PROD用于开发/ CI,并在生产服务器中设置CONFIG_FILE=grafana.productA.config.json。因此,您的应用可以加载适当的配置文件。

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

© www.soinside.com 2019 - 2024. All rights reserved.