2017-05-07 7 views
16

ドッカープラグインを使用して特定のコンテナ内でスクリプトを実行するJenkinsfileがあります。これはいくつかの画像でうまく動作しますが、直ちに-1の終了コードで他の画像に失敗します。エラーを単純な0​​に減らしました。これはJenkinsfileです:Jenkins Dockerパイプライン終了コード-1

node("docker") { 
    def wheezy_image = docker.image("pyca/cryptography-runner-wheezy") 
    wheezy_image.pull() 
    wheezy_image.inside { 
     sh """sleep 120""" 
    } 
} 

そしてここでは、ジェンキンス出力は

興味深いことに
+ docker pull pyca/cryptography-runner-wheezy 
Using default tag: latest 
latest: Pulling from pyca/cryptography-runner-wheezy 
Digest: sha256:ff5d9f661b05d831ace3811eec9f034fed7994279ff2307695a2cb7c32d6fa11 
Status: Image is up to date for pyca/cryptography-runner-wheezy:latest 
[Pipeline] sh 
[3525-VE2ETALXLYB7VN3] Running shell script 
+ docker inspect -f . pyca/cryptography-runner-wheezy 
. 
[Pipeline] withDockerContainer 
$ docker run -t -d -u 1000:1000 -w /var/jenkins_home/workspace/3525-VE2ETALXLYB7VN3 --volumes-from 1382a2e208dd5575acd26f11678855282fc854319096de60cef6818ea279f25f -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** --entrypoint cat pyca/cryptography-runner-wheezy 
[Pipeline] { 
[Pipeline] sh 
[3525-VE2ETALXLYB7VN3] Running shell script 
+ sleep 120 
[Pipeline] } 
$ docker stop --time=1 887db8989e03a10dd89132b1ac6e18261ee4a49e6afe8b0c5568326b6c023654 
$ docker rm -f 887db8989e03a10dd89132b1ac6e18261ee4a49e6afe8b0c5568326b6c023654 
[Pipeline] // withDockerContainer 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] End of Pipeline 

GitHub has been notified of this commit’s build result 

ERROR: script returned exit code -1 
Finished: FAILURE 

だ、睡眠が1秒未満であれば、これは合格(ただし、120秒睡眠は、多くの上でうまく動作します他の画像)。

参考のため、ここにはjessie imageが、動作しないのはwheezy imageです。

ここで何が起こっているのでしょうか?

+0

pyca/cryptography-runner-wheezyが追加したバニラのwheezyドッカー画像は同じ問題を示していません。ドッカーハブ(https://forums.docker.com/t/how-to-upload-my-dockerfile-to-docker-hub/6563/2)に画像のDockerファイルがないので、私は怠け者だと感じていますこれを見て。 :) – burnettk

+0

@burnettk私は裸のwheezyでテストしたかどうかわかりません。 'Dockerfile'は次のところにあります:https://github.com/pyca/infra/blob/master/runners/wheezy/Dockerfile –

+1

@burnettk私はちょうど' debian:wheezy'を引っ張ってテストし、同じ問題を参照してください。 –

答えて

10

psがインストールされていない画像に関連しているようです。私はちょうどdebianベースを取り、それがうまくいかないことを再現することができました。 psがインストールされ、動作しました。 withRun関数を使用することもできます。ここに私のJenkinsファイルがあります:

node("docker") { 

    // Weezy that also ran... apt-get update && apt-get install -y procps 
    def wheezy_image = docker.image("smalone/weezy-ps-test") 
    wheezy_image.pull() 
    wheezy_image.inside { 
     sh 'sleep 2' 
    } 

     // Base image for weezy-ps-test that has no ps installed using withRun() instead of inside() 
    wheezy_image = docker.image("debian:wheezy") 
    wheezy_image.pull() 
    wheezy_image.withRun { c -> 
     sh 'sleep 2' 
    } 

    // Base image for weezy-ps-test that has no ps installed 
    wheezy_image = docker.image("debian:wheezy") 
    wheezy_image.pull() 
    wheezy_image.inside { 
     sh 'sleep 2' 
    } 
} 

ドッカーパイプラインプラグインが存在しない場合はチケットを開きます。

EDIT:チケットが開かれましたが、根本原因はまだ見つかりませんでした。この問題の状況を追跡するには、https://issues.jenkins-ci.org/browse/JENKINS-40101をご覧ください。

+0

これはまさにそれです!どうもありがとうございます。私はアップストリームの修正を見ることを楽しみにしていますが、現在はprocps(とprocps-ng on Fedora)を追加することで回避できます。 Stack Overflowが私にできるようになるとすぐに賞金を授与します(賞金を獲得する前に賞金が追加されてから24時間が必要です) –

関連する問題