问题与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'