gpt4 book ai didi

docker - 在构建自己的容器的 Jenkins 管道中获取 "sudo: unknown uid xxx: who are you?"

转载 作者:行者123 更新时间:2023-12-02 18:07:54 25 4
gpt4 key购买 nike

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

pipeline {
agent { dockerfile true }
stages {
stage('Build') {
steps {
sh 'whoami'
sh 'printenv'
sh './rpmBuild.sh'
}
}
}
}

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

最佳答案

jenkins 无法识别的 UID xxx 是运行 jenkins 的服务器/ubuntu 系统中 jenkin 的用户 ID,并且管道正在 docker 容器内运行,而 jenkins id 不同。因此,在 docker 中无法识别 jenkins 服务器 ID。

所以,这对我有用:
更改自:JENKINS_USER=$NAME
到: JENKINS_USER="root"
在/etc/default/jenkins

这可以从管道的控制台输出中验证,该输出在开头说:
$ docker run -t -d -u 0:0 ....

这个 0:0 表示它以 root 用户身份运行。
当我遇到这个问题时,我用的是 xxx:yyy 而不是 0:0。
此 xxx:yyy 与运行 jenkins 的服务器/ubuntu 系统中的/etc/passwd 中的 jenkins 用户相同。

希望这可以帮助!!

关于docker - 在构建自己的容器的 Jenkins 管道中获取 "sudo: unknown uid xxx: who are you?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50646845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com