我应该把 docker-compose.yml 放在哪里

where should I put docker-compose.yml

当我从 docker 中心拉取图像时。有时,我想 运行 以多容器的方式处理图像。所以我选择使用docker-compose。例如,我会 运行 zookeeper in replicated mode。我将新建一个名为docker-compose.yml和运行 docker-的文件并等待它完全初始化。

我的问题是我应该将 docker-compose.yml 文件放入哪个目录?

我在问自己同样的问题:我的 docker-compose.yml 文件放在哪里?

我决定按以下方式进行:

  • docker-compose.yml 的一个 Repo 以及部署脚本(在我的例子中是 Jenkins 管道)。
  • 每个微服务一个 Repo 以及一个 Dockerfile 及其构建逻辑(构建的图像被推送到私有 docker 注册表)。

为什么?

  • docker-compose.yml描述了一个系统(微服务的组成)及其部署方式。
  • 微服务应该独立于系统基础设施。
  • 可能有多个系统(微服务的不同组成)和第二个 docker-compose.yml(和 Repo)。

不过,当然也有合理的例外。 假设您正在部署一个定制的数据库和一个管理工具(例如定制的 mariadb 和 adminer),那么大多数东西可能都在一个存储库中。

我更喜欢将它们全部放在一个地方。我通常将它们放在 resources 文件夹中,以使它们与我的基本代码保持同步并安装脚本。所以你可以有不同的分支或文件夹来满足不同的需求或系统。

为什么?

  • docker-compose.yml 文件不一定描述整个系统和系统的部署计划。他们通过使用 dockerbuild 文件(因为描述了基本图像和环境)来扮演这个角色 你已经在你的主存储库中了 .
  • 通过使用环境变量和其他相关资源将部署和基础设施计划与 docker-compose.yml 逻辑分开是防止维护大量 docker-compose.yml 不同环境的文件。