我已经在虚拟机中安装了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命令。
提前感谢。
我不确定是否会有所帮助,但是我记得默认情况下在根帐户下启动了节点映像。 Jenkins在启动容器时使用自己的ID。因此,可能是权限问题。尝试添加-u 0参数:
agent {
docker {
image 'node:7-alpine'
args '-u 0'
}
}