vai*_*hav 3 containers node.js docker microservices
我们正在构建Node.js微服务.对于一些可重用的组件,我们创建了一个utils文件夹.此文件夹位于实际的微服务包之外.当我们运行微服务时,我们可以使用require(../../utils/logger)它来引用该代码,它就像一个魅力.但是在尝试为我的微服务创建docker镜像时
project the container gives me an error saying:
Error: Cannot find module '../../Utils/logger
Run Code Online (Sandbox Code Playgroud)
当我们在微服务项目中构建docker镜像时,这很有意义.这里需要采取的架构决策很少:
我们根据需要将utils代码移动到每个微服务中.
2.创建一个私有的npm模块,并将依赖注入microservice package.json文件.不确定这是否有效.
对此的任何建议都非常感谢.
最好的, - Vaibhav
不要使用require(../../utils/logger),使用npm包
你应该避免使用相同的文件用于带有符号链接的微服务或要求从一个文件夹,因为它会破坏Loose coupling.
Loose coupling是一个设计目标,旨在减少系统组件之间的相互依赖性,目标是降低一个组件中的更改需要更改任何其他组件的风险.松散耦合是一个更通用的概念,旨在提高系统的灵活性,使其更易于维护,并使整个框架更"稳定".
简而言之,您不能拥有不同版本的记录器文件,但您可以使用不同版本的记录器npm包.
使用npm模块作为Node.js微服务的可重用组件的实现细节:
@vaibhav/logger选择npm注册表.有这样的选择:
如果您使用2.3或2.4解决方案,则需要为您的服务器选择ip或link.我的建议是使用链接.例https://your-registry.com
registry=https://your-registry.com.您的注册表应该能够缓存公共包.@vaibhav:registry=https://mycustomregistry.example.org npm version带有patch或minorPARAM.更新主要版本正在发生变化,我们会手工制作.package-lock.json文件中的新包版本自动打开拉取请求.开发人员应检查构建状态并手动按合并按钮.| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |