wolkenkit 中节点模块容器的用途是什么?
What's the purpose of the node-modules container in wolkenkit?
该容器是在部署应用程序时构建的。
看起来它的目的是跨模块共享依赖关系。
它看起来像是作为一个容器启动的,但显然没有任何东西运行,有点像一个初始化容器。
控制台在使用相应的 wolkenkit start
和 wolkenkit stop
命令时说 starts/stops 该组件。
启动时:
关机时:
当您 docker ps
时,找不到该容器:
有人可以解释一下这些组件吗?
当启动一个 wolkenkit 应用程序时,该应用程序被封装在许多 Docker 容器中,然后这些容器与提供基础设施(例如数据库)的其他一些容器一起启动, 消息队列, ...
之所以将应用拆分成多个Docker个容器,是因为wolkenkit建立在CQRS模式之上,建议将应用的读取端与应用的写入端分开,因此只有一个容器一个用于读取端,一个用于写入端(实际上还有几个,但你明白了)。
现在,由于您可能在 Linux 以外的操作系统上进行开发,因此 wolkenkit 应用程序可能 运行 在与您开发它时不同的操作系统下,如 Docker它总是 Linux。这意味着启动命令不能简单地将 node_modules
文件夹复制到容器中,因为它们可能包含不兼容的二进制模块(想象一下在主机上的 Windows 上安装,但是 运行宁 Linux Docker).
为避免此处出现问题,在容器内启动应用程序时,wolkenkit 运行s npm install
。现在的问题是,如果 wolkenkit 在每个容器中都这样做,启动会非常慢(无论如何,这不是地球上最快的事情,因为所有 Docker 构建和启动都是在引擎盖下发生的)。所以wolkenkit会尽量优化这个。
这里的一个概念是 运行 npm install
只有一次,在它自己的容器内。这是您遇到的 node-modules
容器。然后将此容器作为一个卷链接到包含应用程序代码的所有容器。这样你只需要 运行 npm install
一次,但是多个容器可以使用这个命令的结果。
因为这个容器现在包含数据,但没有代码,它只需要在那里,它实际上做任何事情。这就是它被创建但不是 运行.
的原因
我希望这能让它更清楚一点,并且我能够回答你的问题:-)
PS:请注意,我是 wolkenkit 的核心开发人员之一,所以请对我的回答持保留态度。
该容器是在部署应用程序时构建的。
看起来它的目的是跨模块共享依赖关系。
它看起来像是作为一个容器启动的,但显然没有任何东西运行,有点像一个初始化容器。
控制台在使用相应的 wolkenkit start
和 wolkenkit stop
命令时说 starts/stops 该组件。
启动时:
关机时:
当您 docker ps
时,找不到该容器:
有人可以解释一下这些组件吗?
当启动一个 wolkenkit 应用程序时,该应用程序被封装在许多 Docker 容器中,然后这些容器与提供基础设施(例如数据库)的其他一些容器一起启动, 消息队列, ...
之所以将应用拆分成多个Docker个容器,是因为wolkenkit建立在CQRS模式之上,建议将应用的读取端与应用的写入端分开,因此只有一个容器一个用于读取端,一个用于写入端(实际上还有几个,但你明白了)。
现在,由于您可能在 Linux 以外的操作系统上进行开发,因此 wolkenkit 应用程序可能 运行 在与您开发它时不同的操作系统下,如 Docker它总是 Linux。这意味着启动命令不能简单地将 node_modules
文件夹复制到容器中,因为它们可能包含不兼容的二进制模块(想象一下在主机上的 Windows 上安装,但是 运行宁 Linux Docker).
为避免此处出现问题,在容器内启动应用程序时,wolkenkit 运行s npm install
。现在的问题是,如果 wolkenkit 在每个容器中都这样做,启动会非常慢(无论如何,这不是地球上最快的事情,因为所有 Docker 构建和启动都是在引擎盖下发生的)。所以wolkenkit会尽量优化这个。
这里的一个概念是 运行 npm install
只有一次,在它自己的容器内。这是您遇到的 node-modules
容器。然后将此容器作为一个卷链接到包含应用程序代码的所有容器。这样你只需要 运行 npm install
一次,但是多个容器可以使用这个命令的结果。
因为这个容器现在包含数据,但没有代码,它只需要在那里,它实际上做任何事情。这就是它被创建但不是 运行.
的原因我希望这能让它更清楚一点,并且我能够回答你的问题:-)
PS:请注意,我是 wolkenkit 的核心开发人员之一,所以请对我的回答持保留态度。