跳至内容

Jixun's Blog 填坑还是开坑,这是个好问题。

Jenkins 的 Docker 任务的用户与组的问题

Jenkins 下的 Docker 插件会传入构建宿主机jenkins 用户所在的的 uidgid

在单一或固定 uid/gid 机器的环境下,这个选择没有问题。但如果部署的机器里的 jenkins 用户有着不同的 uid/gid,则会遇到各种问题…

因此,需要在 Docker 镜像内添加对应的用户信息。

# 基于 Alpine 的镜像
RUN addgroup -g 800 jenkins \
  && adduser -D -G jenkins -u 800 jenkins

# 基于 Debian 的镜像
RUN groupadd -g 800 jenkins \
  && useradd -m -g 800 -u 800 jenkins

然后在所有宿主机将对应的 uid/gid 更新,并设定权限:

groupmod -g 800 jenkins
usermod -u 800 jenkins
chown -R jenkins:jenkins /home/jenkins

注意:需要提前将该节点从 Jenkins 下线,否则无法正常更改用户 uid。

知识共享许可协议 本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

评论区