关于使用 docker 打包 maven 项目
不要使用 docker:maven 镜像作为基础镜像构建 Dockerfile 。
如果非要使用的话,需要将 settings.xml 等文件手动添加到 /usr/share/maven/ref/repository 目录下,再执行构建(因为 docker:maven 镜像默认设定本地仓库为 /usr/share/maven/ref/repository)。
FROM maven:3.6.0-jdk-8-alpine COPY settings.xml /usr/share/maven/ref/
镜像构建完毕,开始启动容器。将 自动执行脚本 mvn-entrypoint.sh,用于将 /usr/share/maven/ref/repository 中的内容重新挂载到 .m2 目录下。
如果需要将 jar包打包成 docker 镜像,可以直接使用 docker-maven-plugin 插件,无需手动编写上述 DockerFile 文件。构建完成后,将构建后的镜像推送到镜像仓库中。
除此之外,我们可以直接使用 docker:maven镜像启动一个容器,在该容器中执行 package 操作。这里可以挂载本地文件中的 .m2 到容器中的 /root/.m2。比如:
pipeline { agent { docker { image 'maven:3-alpine' args '-v $HOME/.m2:/root/.m2' } } stages { stage('Build') { steps { sh 'mvn -B -DskipTests clean package' } } } }
233