2016-06-06 15 views
0

Ich versuche, mein Projekt mit Jenkins und Pipeline-Plugin in Docker Container zu bauen. Mein Jenkinsfile sieht wie folgt aus:jenkins 2.7 Pipeline in Docker Container

node('docker') { 
    docker.image('build-node:1').inside { 
     stage 'scm checkout' 
     checkout scm 

     stage 'maven build' 
     sh "mvn -B clean > mvn.log" 
    } 
} 

In Jenkins log:

... 
Entering stage maven build 
Proceeding 
[Pipeline] sh 
[versioning] Running shell script 
+ mvn -B clean 
[Pipeline] } 
$ docker stop *** 
$ docker rm -f *** 
[Pipeline] // withDockerContainer 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] End of Pipeline 
ERROR: script returned exit code -1 
Finished: FAILURE 

In mvn.log Ich sehe alles in Ordnung ist:

... 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: X.XXX s 
[INFO] Finished at: 2016-XX-XXTXX:XX:XX+XX:XX 
[INFO] Final Memory: XXM/XXXM 
[INFO] ------------------------------------------------------------------------ 

Wo ist ein Fehler, oder wie es bestimmen?

Mein Jenkins-Server ist Docker Container Form Docker Hub, die Docker-Server als Knoten verwenden.

New-Check:

try { 
    sh 'mvn clean | tee mvn.log' 
} catch (e) { 
    println "Maven failed : ${e}" 
} 

Ausgang:

[versioning] Running shell script 
+ mvn clean 
+ tee mvn.log 
[Pipeline] echo 
Maven failed : hudson.AbortException: script returned exit code -1 

mvn.log:

[INFO] BUILD SUCCESS 
+0

https://issues.jenkins-ci.org/browse/JENKINS-35430 – burtsevyg

Antwort

0

Ich konfiguriere Pipeline auf 1651.3 LTS Version von Jenkins und alle arbeiten perfekt. Ich denke, dass das Problem in der Kombination von Plugins oder der instabilen Kernversion von Jenkins bestand.

0

Vielleicht versuchen

sh 'mvn -B clean | tee mvn.log' 

, so dass Sie die Ausgabe von Maven im Build-Protokoll sehen können. Oder einfach

sh 'mvn -B clean' 

wenn Sie planen nicht auf mvn.log für sowieso nichts mit.

+0

Befehl sh 'mvn -B sauber' haben keine Protokolle in Jenkins Protokolle, gleiche wie in Frage. – burtsevyg

+0

Ich füge "> mvn.log" hinzu, um Befehle zu erstellen, um zu verstehen, was passiert. – burtsevyg

+0

Jenkins 2.8 dasselbe Problem – burtsevyg