首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在wolkenkit中节点模块容器的用途是什么?

在wolkenkit中节点模块容器的用途是什么?
EN

Stack Overflow用户
提问于 2019-04-05 06:20:22
回答 1查看 38关注 0票数 2

该容器是在部署应用程序时生成的。

看起来它的目的是在模块之间共享依赖关系。

看起来它是作为一个容器启动的,但是显然没有任何东西在运行,有点像init容器。

控制台表示,当使用相应的wolkenkit startwolkenkit stop命令时,它会启动/停止该组件。

在启动时:

关机时:

当您使用docker ps时,无法找到该容器:

有人能解释一下这些组件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-05 06:37:22

启动沃肯吉应用程序时,应用程序将被装箱在多个Docker容器中,然后与提供基础设施的其他几个容器一起启动这些容器,如数据库、消息队列、.

将应用程序分成几个Docker容器的原因是,wolkenkit构建在CQRS模式之上,这意味着将应用程序的读取端与应用程序的写入端分离开来,因此读取端有一个容器,写入端有一个容器(实际上还有几个,但您可以看到图片)。

现在,由于您可以在Linux以外的操作系统上进行开发,wolkenkit应用程序可能在与开发它时不同的操作系统下运行,就像在Docker中一样,它始终是Linux。这意味着start命令不能简单地将node_modules文件夹复制到容器中,因为它们可能包含二进制模块,然后这些模块是不兼容的(假设安装在主机上,但在Docker中运行在Linux上)。

为了避免这里的问题,wolkenkit在启动容器内的应用程序时运行一个npm install。现在的问题是,如果wolkenkit在每一个容器中都这样做,那么启动就会非常慢(这并不是地球上最快的事情,因为所有的码头建筑和启动都是在引擎盖下发生的)。因此,沃尔肯基特试图尽可能地优化这一点。

这里的一个概念是只运行npm install一次,在自己的容器中运行一次。这是您遇到的node-modules容器。然后将此容器作为卷链接到包含应用程序代码的所有容器。这样,您只需要运行npm install一次,但是多个容器可以使用此命令的结果。

因为这个容器现在包含数据,但是没有代码,它只需要在那里,它实际上什么也不做。这就是为什么要创建它,但不运行。

我希望这能让事情更清楚一些,我能够回答你的问题:-)

PS:请注意,我是wolkenkit的核心开发者之一,所以请接受我的回答。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55529330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档