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

Jenkins 下的 Docker 插件会传入构建宿主机jenkins用户 id(uid)组 id(gid)传入进去。

在单一或固定 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

(注意:需要提前将该节点下线,否则无法更改用户 uid)

Jixun

Jixun

学习与游戏的旅途,各类杂谈。