获取“sudo:未知 uid xxx:你是谁?” 在 Jenkins 管道中,正在构建自己的容器

epa*_*015 5 sudo jenkins docker

我正在创建一个 Jenkins 管道,它使用 CentOS 创建自己的容器,agent { dockerfile true }然后使用以下命令调用自定义脚本:

pipeline {
agent { dockerfile true }
stages {
    stage('Build') {
        steps {
            sh 'whoami'
            sh 'printenv'
            sh './rpmBuild.sh'
        }
    }
}
}
Run Code Online (Sandbox Code Playgroud)

然后问题是,当使用 sudo 调用任何命令失败时,它会给出sudo: unknown uid xxx: who are you?

gle*_*and -3

在容器内,您需要拥有包含 jenkins 用户的 passwd、group 和 sudoers 文件。jenkins 用户需要设置为无密码 sudo ( %jenkins ALL=(ALL) NOPASSWD: ALL)。

一种方法是正确设置主机的 jenkins 帐户,然后运行 ​​docker:

docker run -v /etc/group:/etc/group:ro -v /etc/passwd:/etc/passwd:ro -v /etc/shadow:/etc/shadow:ro -v /etc/sudoers.d:/etc/sudoers.d:ro ...
Run Code Online (Sandbox Code Playgroud)