Jenkinsfile docker代理步骤在1秒后死亡

Jenkinsfile docker代理步骤在1秒后死亡,docker,jenkins,jenkins-pipeline,Docker,Jenkins,Jenkins Pipeline,我有一个非常简单的Jenkins文件,如下所示 def workspace node { workspace = sh(returnStdout: true, script: 'pwd').trim() } pipeline { agent none stages { stage('Back-end') { agent { docker { image 'co

我有一个非常简单的Jenkins文件,如下所示

def workspace
node {
    workspace = sh(returnStdout: true, script: 'pwd').trim()
}

pipeline {
    agent none
    stages {
        stage('Back-end') {
            agent {
                docker {
                    image 'composer'
                    args "-v /var/lib/jenkins/.composer/auth.json:/.composer/auth.json -v $workspace:/app"
                }
            }
            steps {
                sh 'php -v'
                sh 'composer install --no-interaction --working-dir=$WORKSPACE/backend'
            }
        }
    }
}
我已经到了这样一个地步:它完全按照预期工作(例如:按预期装载卷、移动内容、提取图像、实际运行
composer安装
),只有一个小的例外

紧接着
docker运行
它进入shell步骤,运行
sh'composer install…
并在1秒后死亡,随后进入
docker stop--time 1…
docker rm…
步骤

我不知道这是否来自作曲家做了一些奇怪的事情,或者是否有一些我完全不知道的可配置超时

以前有人处理过这个问题吗

编辑:

详情如下:

[Pipeline] withDockerContainer
Jenkins does not seem to be running inside a container
$ docker run -t -d -u 997:995 -v /var/lib/jenkins/.composer/auth.json:/.composer/auth.json -v [...] -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 composer
[Pipeline] {
[Pipeline] sh
[workspace] Running shell script
+ php -v
PHP 7.1.9 (cli) (built: Sep 15 2017 00:07:01) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
[Pipeline] sh
[workspace] Running shell script
+ composer install --no-interaction --working-dir=/app/backend --no-progress --no-ansi
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 29 installs, 0 updates, 0 removals
  - Installing laravel/tinker (v1.0.2): Downloading[Pipeline] }
$ docker stop --time=1 ee693aaa7cdde41b714fdc91dbc1b05ac07fe2be7904ab1ed528fb0a3f771047
$ docker rm -f ee693aaa7cdde41b714fdc91dbc1b05ac07fe2be7904ab1ed528fb0a3f771047
[Pipeline] // withDockerContainer
[Pipeline] }
和以前的工作

Installing dependencies (including require-dev) from lock file
Package operations: 55 installs, 0 updates, 0 removals
  - Installing symfony/finder (v3.3.6): Downloading (connecting...)[Pipeline] }
正如我们所看到的,它正在工作,但最后的返回代码是

GitHub has been notified of this commit’s build result

ERROR: script returned exit code -1
Finished: FAILURE
编辑2:

让这项工作更简单,更多信息请参见要点:


这是Jenkins中的一个bug,所以在这个bug被标记为已修复之前,我只是在其中手动使用带有
docker run…
的sh步骤

e、 g:


sh'docker run-v$WORKSPACE:/app composer install'

这是Jenkins中的一个bug,所以在这被标记为修复之前,我只是手动使用sh步骤,其中包含
docker run…

e、 g:


sh'docker run-v$WORKSPACE:/app composer install'

我经历了这个问题,并通过从1.13升级到1.16解决了这个问题

1.16变更日志包含:

使用一个新系统来确定sh-step过程是否仍然有效,这将解决各种鲁棒性问题


我经历了这个问题,并通过从1.13升级到1.16解决了它

1.16变更日志包含:

使用一个新系统来确定sh-step过程是否仍然有效,这将解决各种鲁棒性问题


你的詹金斯是在一个容器里运行吗?您是否查看了作业的控制台输出?他们有没有任何错误?请看我上面的编辑,希望以前有人遇到过…你的jenkins是在一个容器中运行的吗?您是否查看了作业的控制台输出?有没有任何东西在他们的指示错误?请参阅我的编辑上面,希望有人遇到过这个之前。。。