Java 如何在docker容器中高效地构建maven项目?

Java 如何在docker容器中高效地构建maven项目?,java,maven,docker,build,Java,Maven,Docker,Build,我试图通过缩短构建过程的持续时间来改进构建过程。构建是在基于的docker容器中完成的 我现在这样做的效果很好,但是没有为后续构建保留本地maven存储库,这意味着每次构建都需要再次进行所有下载 让我们关注一下我到底想改进什么。 我尝试了以下步骤: 1.为maven的.m2目录创建docker卷 2.构建自定义maven映像(包含自定义maven设置) 3.基于该映像运行docker容器,从步骤1装载卷并绑定装载maven项目(包含顶级pom文件的目录) 以下是自定义maven docker映像

我试图通过缩短构建过程的持续时间来改进构建过程。构建是在基于的docker容器中完成的

我现在这样做的效果很好,但是没有为后续构建保留本地maven存储库,这意味着每次构建都需要再次进行所有下载

让我们关注一下我到底想改进什么。 我尝试了以下步骤: 1.为maven的.m2目录创建docker卷 2.构建自定义maven映像(包含自定义maven设置) 3.基于该映像运行docker容器,从步骤1装载卷并绑定装载maven项目(包含顶级pom文件的目录)

以下是自定义maven docker映像的dockerfile:

FROM maven:3.6.1-jdk-11

# Use custom settings file for maven
COPY my-settings.xml /usr/share/maven/conf/settings.xml

CMD ["/bin/bash"]
下面是完成其余工作的bash脚本

#为Maven本地存储库重用提供基础
docker卷创建--名称maven repo
#使用custom settings.xml构建maven docker映像
docker构建--文件“${WORKSPACE}”/tools/maven/Dockerfile\
--标记我的maven图像:最新\
“${WORKSPACE}”/tools/maven/
#在容器中使用maven构建
#选项-仅用于调试目的
docker run-it\
--mount source=maven repo,destination=/root/.m2\
--mount type=bind,source=“${WORKSPACE}”/my maven项目,destination=/usr/src/my maven项目\
--名称maven容器我的maven图像:最新\
--workdir/usr/src/my-maven项目
mvn清洁安装
我希望
mvn clean install
在容器的
/usr/src/my maven project
目录中运行。相反,找不到此目录

我还计划在
docker run
命令工作后立即取消该命令的交互模式,我假设可以在docker容器的日志中找到maven命令的日志

成功构建之后,我假设工件将位于相同的目录中,就像我从docker主机运行maven命令一样