Git 如何跟踪开发和生产环境配置文件的更改

Git 如何跟踪开发和生产环境配置文件的更改,git,version-control,jboss,automation,system,Git,Version Control,Jboss,Automation,System,我正在开发一个使用JBoss、PostgreSQL等的应用程序 JBoss需要很多不同的配置,如数据源、电子邮件服务器、安全性等。 我应该如何处理这些配置?整个JBoss应该放在VCS下吗 或者这仅仅是您必须为您拥有的每个生产服务器配置的一件事情,然后使用一些虚拟化映像进行开发?好吧,在VCS中存储整个JBoss根本不是一个选项。它主要是二进制的,配置的大小比jar的大小小得多。那些罐子永远不会变不要将JBoss(或任何其他二进制发行版)放入VCS中 我想有几种方法可以解决这个问题 首先,您只能

我正在开发一个使用JBoss、PostgreSQL等的应用程序

JBoss需要很多不同的配置,如数据源、电子邮件服务器、安全性等。 我应该如何处理这些配置?整个JBoss应该放在VCS下吗


或者这仅仅是您必须为您拥有的每个生产服务器配置的一件事情,然后使用一些虚拟化映像进行开发?

好吧,在VCS中存储整个JBoss根本不是一个选项。它主要是二进制的,配置的大小比jar的大小小得多。那些罐子永远不会变不要将JBoss(或任何其他二进制发行版)放入VCS中

我想有几种方法可以解决这个问题

首先,您只能在Git中存储所需的配置。这是最基本、也不是很灵活的解决方案。例如,您可以在real server上的git repo配置上进行符号链接,但它仅在服务器获取这些repo时才可用。在我的实践中,我从未见过这样的服务器布局

或者,您可以将配置存储在git中,并使用工具在真实环境中更新它们。在我的实践中,曾经有过这样一组基于Perl的脚本。它非常简单,您可以完全控制,但不是非标准化的。这有点像是发明了一辆自行车

正如您在问题中提到的,您可以使用VM映像来实现这一点。如果您很少更新,那么这很好,因为每次更新配置时重新安装整个VM可能会很痛苦。还有,你想知道如何更新这些图片吗?您的CI服务器可以生成映像吗?这很棘手,伊姆霍


我个人的挖掘方向是使用工具,如,或。这与VM映像方法非常相似,但您可以在每台“侦听”配置更新并采取所需操作的计算机上安装一个客户端。另外,它是一个著名的工具,有很大的社区,因此很容易找到帮助或支持。无论如何,您会发现将示例配置存储在主代码库中对那些希望在自己的机器上使用它们而不安装这些工具的开发人员非常有用。

好的,我理解。我看过这些工具,也看过Docker。我想通过查看这些工具,我已经走上了正确的轨道。Docker似乎也是一个替代品?Docker很棒,因为它可以在构建阶段轻松地将所有应用程序和依赖项打包到独立的容器中。之后您只需
docker拉取
最新图像,然后
docker运行
it!然而,即使Docker与VM相比是超轻量的,将简单的应用程序打包到容器中也可能是一种过火的行为。