docker - 最佳实践 - 在一个 repo 中有多个 docker-compose 文件

标签 docker docker-compose

我目前正在从事一个由以下组件组成的全栈网络项目:

  • 数据库(MariaDB)
  • 前端(角度)
  • 后端(NodeJS)

每个组件都应该可以通过 docker 部署。为此,我为它们每个都有一个 Dockerfile。我还在存储库根目录中定义了一个 docker-compose 以将它们全部部署在一起。

# current repo structure
|frontend/
 |src/
 |docker/
  -Dockerfile
  -docker-compose.yml
|backend/
 |src/
 |docker/
  -Dockerfile
  -docker-compose.yml
|database/
 |src/
 |docker/
  -Dockerfile
  -docker-compose.yml
-docker-compose.yml

您认为这是好的做法吗?我不确定,因为我认为我目前的结构有点困惑。你在类似的项目中是如何处理的?

最佳答案

docker-compose 旨在在一个地方编排项目的多个组件:docker-compose 文件。

在您的情况下,正如 m303945 所说,您不需要多个 docker-compose 文件。实际上,您的主要 docker-compose.yml 应该调用每个组件的 Dockerfile。该文件可能包含如下内容:

services:

  frontend:
    build:
      context: frontend
      dockerfile: docker/Dockerfile

  backend:
    build:
      context: backend
      dockerfile: docker/Dockerfile

  database:
    build:
      context: database
      dockerfile: docker/Dockerfile

关于docker - 最佳实践 - 在一个 repo 中有多个 docker-compose 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60440856/

相关文章:

docker - 尝试 ssh docker 容器时出错 : System is booting up

java - 如何使用 Docker 在 Jelastic 上部署 Play 2.5 应用程序?

r - 如何在 docker 中加速 R 包的安装

docker - 使Docker Registry HA

laravel - Laravel x Docker:如何从排队的作业中获取STDOUT日志?

docker - docker在Linux机器上运行时是否使用虚拟化解决方案?

docker - `docker-compose.yml` 应该在自己的存储库中吗?

django - Django 和 VueJS 的 Docker 容器设置

docker - 为什么Docker容器重新启动?

architecture - 如何在 Docker Compose V2 中扩展服务?