关于使用 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

posted on 2020-01-12 22:26  Lemo_wd  阅读(3295)  评论(0编辑  收藏  举报

导航