我们的项目由多个NestJS微服务组成,这些微服务使用相同的配置和实用程序类(领事,elasticsearch,winston logger等)。
我们希望将这些类分组在所有微服务都可见的公共库中,并且我们不想将此库发布在npm存储库中。我们还使用Dockerfiles构建每个微服务,因此在构建具有多个文件夹的过程中遇到Docker上下文问题。
我们如何使用这些约束创建公共库?
实际结构:
- microservice-users
- core
- consul
- elasticsearch
- winston
- ...
- users
- controllers, services, models, ...
- package.json
- Dockerfile
- microservice-projects
- core
- consul
- elasticsearch
- winston
- ...
- projects
- controllers, services, models, ...
- package.json
- Dockerfile
所需结构:
- common-core
- core
- consul
- elasticsearch
- winston
- ...
- package.json
- microservice-users
- users
- controllers, services, models, ...
- package.json
- Dockerfile
Docker build命令:cd microservice-users && docker build -t microservice-users。
npm link
命令不会在package.json中添加公共依赖关系,并且npm i --save ../common-core
不适用于Docker上下文。