我正在构建一个由 3 个不同部分组成的网络应用程序
- Node.js API
- 前端网络客户端,使用 API
- 用于数据处理的 Node.js 服务
我需要 2 个 Node.js 服务进行通信,因此我使用rabbitMQ。我希望一切都能够进行 Docker 化,因为它使加入和部署变得容易。但是,我不确定如何构建文件?
所有 3 个项目都应该位于单独的 github 存储库中,以便您可以单独开发它们,并用于一般组织。一个巨大的 repo 协议(protocol)将是一场噩梦。
那么我如何在运行时组合它们呢?它们应该各自放在自己的容器中吗?我如何将它们整合在一起?
它们都应该放在一个巨大的文件夹中吗?
- 应用程序
- Node 1
- dockerfile
- Node 2
- dockerfile
- docker-compose.yml
- Node 1
最佳答案
Should they each be in their own container?
是的,您在 docker-compose.yml
similar to this one 中声明它们,但我建议使用 version 2 of that docker-compose.yml
format (假设 Compose 1.6.0+ 和 Docker 引擎版本 1.10.0+)。
这允许命名卷和 network .
正如OP在评论中添加的那样:
The part I was missing was to upload my separate repos to dockerhub
如果每个存储库代表一个 docker 镜像,则该镜像一旦构建,就必须上传到 docker hub。
关于node.js - 我应该如何组合docker容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36658452/