执行jenkins sh管道步骤时权限被拒绝

Tay*_*our 5 jenkins jenkins-pipeline

我有一些麻烦,这种情况:每次我创建一个新的管道作业(名为"管道"),该sh步甚至不会与像简单的命令工作,lspwd和它返回日志:

sh: 1: /var/jenkins_home/workspace/pipeline@tmp/durable-34c21b81/script.sh: Permission denied
Run Code Online (Sandbox Code Playgroud)

有什么建议?

Tor*_*ten 5

我猜你用

stage(name){
   sh ./runSomething
}
Run Code Online (Sandbox Code Playgroud)

Jenkins 总是使用 jenkins 来运行脚本。有一些可能性:

  1. Jenkins 正在使用不同的用户运行,也许您可​​以使用其他用户启动它。
  2. 安装 jenkins 时有些东西正在运行,请检查您是否有 jenkins 用户


小智 5

在遵循节点项目的 Jenkins 管道教程后,我收到了类似的权限被拒绝错误。

./jenkins/test.sh: 权限被拒绝

原始管道测试阶段如下所示并返回该错误。

stage('Test') {
    steps {
        sh './jenkins/test.sh'
    }
}
Run Code Online (Sandbox Code Playgroud)

我找到了以下帖子:https : //stackoverflow.com/a/61956744/9109504并将测试阶段修改为以下内容

stage('Test') {
    steps {
        sh "chmod +x -R ${env.WORKSPACE}"
        sh './jenkins/test.sh'
    }
}
Run Code Online (Sandbox Code Playgroud)

该更改修复了权限被拒绝错误。

  • 这会将工作区中的所有文件更改为可执行文件,而不是您想要的。`sh "chmod +x ./jenkins/test.sh"` 将仅针对一个文件。 (9认同)