不要使用 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