我一直在拼命地想知道是否有可能在jenkins代理上使用docker构建文件来构建mvn项目。我在运行管道时得到的错误是[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
pipeline {
agent {
dockerfile {
filename 'DockerFile.build'
}
}
environment {
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el8_2.x86_64"
}
stages {
stage('Build DockerFile') {
steps {
echo "building docker image"
sh "echo 1 | alternatives --config java"
sh "java -version"
sh "echo ${JAVA_HOME}"
git branch: "develop", credentialsId: 'cred_id', url: "git@bitbucket.org:repo.git"
dir("repo"){
sh "mvn clean install -X"
}
}
}
}
}DockerFile.build
FROM centos
RUN yum update -y
RUN yum install -y java-11-openjdk-devel
RUN yum install -y java-11-openjdk
RUN yum install -y maven
ENV HOME=${home}关于echo 1 | alternatives --config java的代码行是切换到java11。如果有任何帮助,我们将不胜感激。
发布于 2020-11-04 22:59:11
docker {
image 'maven:3-alpine'
args '-v $HOME/.m2:/root/.m2'
}需要挂载.m2目录。它位于缓存容器下:https://www.jenkins.io/doc/book/pipeline/docker/
发布于 2020-11-04 00:16:32
看起来你有一个要构建的docker构建文件,这样你就有了一个可以运行的可部署映像。然后,当您有了可以运行的映像时,您实际上想要将其拉下并运行,并将应用程序代码安装在其中。
我最近在这里回答了一个类似的问题:Dockerfile can't build app with Maven - No goals specified for this build,也许这对你有帮助?
您似乎遇到了错误,因为您试图直接在jenkins主机上进行构建,而不是在安装了maven/java11的docker容器中进行构建。
https://stackoverflow.com/questions/64666407
复制相似问题