首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像构建过程中的多线程处理

图像构建过程中的多线程处理
EN

Stack Overflow用户
提问于 2016-11-23 07:01:53
回答 1查看 2.3K关注 0票数 3

我正在构建一个包含我的java应用程序的自定义映像。基本上,我是在Dockerfile中调用Dockerfile。我使用这个RUN mvn -T 1C clean install是为了加速这个过程。

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

更新:

我正在构建一个模块(fat jar,带有tomcat嵌入式的spring引导应用程序),maven 3.3.9,大约30分钟的持续时间,没有线程推进。巨大的开销是它从S3中的私有回购中下载依赖项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-23 17:59:12

根据我的基本观点,我认为由maven在Dockerfile中构建应用程序会带来更多的问题而不是好处。

当您运行新构建时,maven缓存是空的,所以您的构建会花费大量时间下载所有依赖项。

更改构建所使用的三段不会给您带来任何性能提升。

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

另一种解决方案可能是将下载依赖项分离出来并在两次运行中构建,谢谢您的下一次构建可能会更快。

代码语言:javascript
复制
RUN mvn dependency:go-offline
RUN mvn clean install
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40757987

复制
相关文章

相似问题

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