我正在构建一个包含我的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中的私有回购中下载依赖项。
发布于 2016-11-23 17:59:12
根据我的基本观点,我认为由maven在Dockerfile中构建应用程序会带来更多的问题而不是好处。
当您运行新构建时,maven缓存是空的,所以您的构建会花费大量时间下载所有依赖项。
更改构建所使用的三段不会给您带来任何性能提升。
您可以尝试使用maven准备一个docker映像,并尝试运行maven命令在此映像构建中填充maven缓存。接下来,您可以使用此图像作为项目的基础。
另一种解决方案可能是将下载依赖项分离出来并在两次运行中构建,谢谢您的下一次构建可能会更快。
RUN mvn dependency:go-offline
RUN mvn clean installhttps://stackoverflow.com/questions/40757987
复制相似问题