Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 映像生成期间的多线程处理_Java_Maven_Docker - Fatal编程技术网

Java 映像生成期间的多线程处理

Java 映像生成期间的多线程处理,java,maven,docker,Java,Maven,Docker,我正在构建一个包含java应用程序的自定义映像。 基本上,我是在Dockerfile中调用mvn clean install。 我正在使用这个运行mvn-t1c clean install,以加快进程 这将为每个可用CPU核心使用1个线程。这够了吗?mvn如何计算可用的cpu内核?我是否必须做些什么才能让它检查主机的CPU而不是VM?我正在使用Docker for Mac(据我所知,它在内部使用xhyve) 更新: 我正在构建一个模块(fat jar,嵌入tomcat的spring boot应用

我正在构建一个包含java应用程序的自定义映像。 基本上,我是在
Dockerfile
中调用
mvn clean install
。 我正在使用这个
运行mvn-t1c clean install
,以加快进程

这将为每个可用CPU核心使用1个线程。这够了吗?mvn如何计算可用的cpu内核?我是否必须做些什么才能让它检查主机的CPU而不是VM?我正在使用Docker for Mac(据我所知,它在内部使用xhyve)

更新:


我正在构建一个模块(fat jar,嵌入tomcat的spring boot应用程序),maven 3.3.9,在没有线程提升的情况下,总持续时间约为30分钟。巨大的开销是它从S3中的私有repo下载依赖项。

根据我的拙见,我认为maven在Dockerfile中构建应用程序会带来更多的问题而不是好处

当您运行新构建时,maven缓存为空,因此您的构建会花费很多时间下载所有依赖项

更改build使用的thred不会给您带来任何性能提升

您可以尝试使用maven准备一个docker映像,并尝试运行一些maven命令来填充此映像构建中的maven缓存。 接下来,您将使用此图像作为项目的基础

另一个解决方案可能是在两次运行中分离下载依赖项和构建,感谢docker cache,您的下一次构建可能会更快

RUN mvn dependency:go-offline
RUN mvn clean install

Docker for Mac是在VirtualBox上运行的虚拟机(boot2docker)。我认为您可以打开VirtualBox并重新配置boot2docker VM?没有
-T..
,构建需要多长时间?您使用哪个Maven版本?@Tuan
Docker for Mac是我们针对Mac的最新产品。它作为本机Mac应用程序运行,并使用xhyve虚拟化Docker引擎环境和Docker守护程序的Linux内核特定功能。
@khmarbaise One module(fat jar,spring boot application),maven 3.3.9,大约30分钟。巨大的开销是它从S3中的私有repo下载依赖项。如果您只有一个模块,那么选项
-T..
将不会提高构建性能。从s3下载的内容应该由存储库管理器代理/缓存,这将提高构建性能。。。