很明显,通常对于我们的项目,当我们运行 mvn 测试时,首先它会下载依赖项并将其存储到我们的本地 /home/username/.m2 ,然后它将在我们下次运行时使用mvn 测试。但是我们在 Dockerfile 中使用 mvn 镜像,有没有办法做同样的事情(除了使用卷或挂载概念)???...
问问题
178 次
2 回答
1
您可以创建一个中间容器,构建在您已经使用的 Maven 容器之上。
mvn dependency:go-offline
作为中间容器的最后构建步骤执行;- 在 Docker 中标记中间容器;
- 使用标记的中间容器作为构建的基础容器。
Maven 将下载新的/缺失的依赖项,但中间容器将存储所需本地存储库的主要部分。
在对项目中的依赖项进行重大更改后,您需要重新创建中间容器(并对其进行标记)。
于 2021-03-10T22:28:16.537 回答
1
看看开发者指南:https ://github.com/intuit/karate/wiki/Developer-Guide#docker
请注意 -v "$HOME/.m2":/root/.m2 重新使用本地 Maven JAR 下载“缓存”(这样可以节省时间)
另请注意,您可以基于 Maven docker 镜像构建自己的镜像,请参阅文档并查找以下部分Packaging a local repository with the image
:https ://hub.docker.com/_/maven
于 2021-03-10T18:03:27.337 回答