图像构build过程中的multithreading

我正在构build一个包含我的Java应用程序的自定义图像。 基本上我打电话mvn clean installDockerfile 。 我使用这个RUN mvn -T 1C clean install ,以加快进程。

这将使用每个可用的CPU核心1个线程。 这足够吗? mvn如何计算可用的cpu内核? 为了让它检查主机的CPU而不是虚拟机,我需要做些什么吗? 我使用Mac版的Docker(据我所知在内部使用xhyve)。

更新:

我正在构build一个模块(fat jar,使用tomcatembedded的spring引导应用程序),maven 3.3.9,大约30分钟的总持续时间没有线程提升。 巨大的开销是它在S3中从我的私人回购下载依赖。

根据我的愚见,我认为在Dockerfile中通过maven构build应用程序比获得更多的问题。

当你运行新的构buildmavencaching是空的,所以你的构build花费很多时间来下载所有的依赖。

build造使用的变化的武器不会给你任何性能提升。

您可以尝试使用maven准备一个docker镜像,并尝试运行一些maven命令来填充此镜像构build中的mavencaching。 接下来你使用这个图像作为你的项目的基础。

另一个解决scheme可能是单独的下载依赖和build立在两个运行,由​​于dockercaching您的下一个版本可能会更快。

 RUN mvn dependency:go-offline RUN mvn clean install