在Multi Container,Multi Repository Project中保留部署文件的位置?

我有一个由三个git存储库和应用程序组成的堆栈:

  • 前端应用程序
  • 后端应用程序
  • 工人申请

它们都与docker-compose.yml文件一起工作,该文件还包含部署应用程序所需的其他资源和图像。

当我部署应用程序时,我只需要推送docker-compose.yml文件,或者在AWS的情况下,它将是一个Dockerrun.aws.json文件。 所以我的问题是…我应该在哪里保存这个文件? 它不属于上面的任何一个版本库,因为它编排了所有的版本。

是否应该build立一个名为“部署库”的第四个存储库,以保留我所有的部署文件和configuration? 或者,我从上面select一个存储库,我决定是“我部署的回购”,我把它放在哪里? 或者,我可能会在所有存储库中存储部署的副本,以便我可以部署完整的应用程序,而不pipe我正在使用哪个存储库?

尝试一个任意的方法,评估利弊,并在以后重新考虑。 我不认为有一个标准的方法。

您可以想象在源代码控制库之外“打包”或者仅仅“暴露”docker-compose定义(它们是此时的部署工件,而不是源代码),尽pipe原始源文件当然应该受版本控制。

我们甚至喜欢git,因为它允许我们跟踪每个部署的configuration更改(在提交日志中具有特定于部署的注释)。 情况可能有点特别; 有问题的应用程序通常需要在不同站点上进行非常不同的configuration,所以实际上,docker-compose.yml文件实际上是不同的。 因此,我们在每个部署中使用一个git存储库。 因人而异。