是否有一种方法来避免重新下载maven依赖一次又一次当我们使用docker图像的空手道项目?



很明显,通常对于我们的项目,当我们运行MVN测试时,它首先下载依赖项并将其存储到我们本地的/home/username/。M2,然后它将在下一次运行MVN测试时使用。但是,如果我们在Dockerfile中使用mvn映像,是否有一种方法可以做到同样的事情(除了使用卷或挂载概念)?

查看开发者指南:https://github.com/intuit/karate/wiki/Developer-Guide#docker

注意- v"$ HOME/.m2":/根/。m2重用本地Maven JAR下载"缓存"(节省时间)

还请注意,您可以基于Maven docker映像构建自己的映像,请参考文档并查找Packaging a local repository with the image: https://hub.docker.com/_/maven

部分。

您可以创建一个中间容器,构建在您已经使用的Maven容器之上。

  • 执行mvn dependency:go-offline作为中间容器的最后一个构建步骤;
  • 标记Docker中的中间容器;
  • 使用带标记的中间容器作为构建的基础容器。

Maven将下载新的/缺失的依赖项,但中间容器将存储所需本地存储库的主要部分。

在对项目中的依赖项进行重大更改后,您需要重新创建中间容器(并标记它)。

相关内容