Jenkins作业在执行Docker映像作为代理程序时陷入困境

问题描述 投票:0回答:1

我已经在虚拟机中安装了Jenkins和Docker。我正在使用Jenkins管道项目,而我的jenkins声明式管道如下所示。

pipeline {
    agent {
        docker { image 'node:7-alpine' }
    }
    stages {
        stage('Test') {
            steps {
                echo 'Hello Nodejs'
                sh 'node --version'
            }
        }
    }
}

这是此链接https://jenkins.io/doc/book/pipeline/docker/之后的非常基本的管道

[当我尝试构建我的詹金斯工作时,它打印Hello Nodejs,但是卡在下一条指令(即执行Shell命令)上。 5分钟后,作业失败,并显示此错误

process apparently never started in /var/lib/jenkins/workspace/MyProject@tmp/durable-c118923c
(running Jenkins temporarily with -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS=true might make the problem clearer)
ERROR: script returned exit code -2

我不明白为什么它不执行sh命令。

This is the screenshot of console output

如果将其设为agent any,它将执行sh命令。

提前感谢。

docker jenkins jenkins-pipeline jenkins-plugins jenkins-declarative-pipeline
1个回答
0
投票

我不确定是否会有所帮助,但是我记得默认情况下在根帐户下启动了节点映像。 Jenkins在启动容器时使用自己的ID。因此,可能是权限问题。尝试添加-u 0参数:

agent {
    docker {
        image 'node:7-alpine'
        args '-u 0'
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.