我目前正在从事一个由以下组件组成的全栈网络项目:
- 数据库(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/