问题与jenkinspipe道脚本和docker工人图像

我尝试在Docker容器中构build项目,图像如下所示:

FROM maven:3.3.9-jdk-8 WORKDIR mvnBuildDir ENTRYPOINT ["mvn"] 

如果我运行我的容器像下面一切正常。

 docker run -v /home/user/Worspace/myMavenProject:/mvnBuildDir myMaven3 clean package 

但是,如果我在我的Jenkinsfile中尝试这个,我得到了一个错误,没有告诉我什么。 Jenkinsfile:

 //... def maven = docker.image("myMaven3"); maven.inside("-v ${workdir}:/mvnBuildDir"){ stage "build and test" sh "mvn clean install" } //.. 

错误:

 [Pipeline] { [Pipeline] stage (build and test) Entering stage build and test Proceeding [Pipeline] sh [master] Running shell script + mvn clean install -s mvnSettings.xml [Pipeline] } $ docker stop 1fc920c00b46a1038b0f39e2adc6e67f702d48ccf10d3e0bb3514d1cee3a795b $ docker rm -f 1fc920c00b46a1038b0f39e2adc6e67f702d48ccf10d3e0bb3514d1cee3a795b [Pipeline] // withDockerContainer [Pipeline] } [Pipeline] // withDockerRegistry [Pipeline] } [Pipeline] // withEnv [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline ERROR: script returned exit code -1 Finished: FAILURE 

有没有人有一个想法是什么问题在这里或有任何人另一个解决scheme如何在docker集装箱内build立我的项目? 我的整个工作空间被映射到容器内部,所以问题不在于我认为找不到POM或其他东西。 如果我运行'mvn –version',我得到了正确的输出。 非常感谢。

当使用docker镜像时,我的行为已经结束,但docker仍在运行,所以我没有输出。

你可以尝试通过shell调用docker。

sh 'docker pull myMaven3'

sh 'docker run --rm -v ${workdir}:/mvnBuildDir myMaven3 clean install'