首页 > 解决方案 > 在单存储库中对多个微服务进行 Dockerizing

问题描述

我想对使用多个微服务的 REST Api 进行 dockerize。大多数教程只涵盖非常简单的案例,所以我对如何正确 dockerize 这样的项目有点困惑。

我的项目结构:

所以它有三个微服务(request-worker、request-manager 和 rest-api)。

我的问题:

每个微服务都需要一个 .dockerignore 和 Dockerfile 吗?或者如何正确地对这样一个单一存储库项目进行 docker 化?

标签: node.jsdocker

解决方案


可以为每个微服务创建一个 Dockerfile,但由于它们共享多个文件(尤其是 node_modules),因此可能会出现一些冲突和问题。

我建议为每个服务使用一个(子)存储库:

  • 请求管理器
    • Dockerfile
    • 源代码
    • 节点模块
    • 测试
    • 包.json
    • tsconfig.json
  • 请求工作者
    • Dockerfile
    • 源代码
    • 节点模块
    • ...
  • 休息API
    • ...
  • 共享

并且要非常小心你放在shared文件夹中的内容。

您还可以使用 docker-compose 来管理依赖项。


推荐阅读