小编Mat*_*t W的帖子

为什么 Jenkins 用户可能没有访问 Docker unix socket 的权限?

我已将jenkins用户添加到docker组中,认为它会允许 Jenkins 作业运行 Docker 命令。如果我切换到jenkins用户,我可以验证它是否有效(手动):

ubuntu@hostname:~$ ps aux | grep java
jenkins   2210  9.5  7.5 1950316 292896 ?      Sl   00:01   1:00 /usr/bin/java -jar /data/jenkins/jenkins-1.586.war --httpPort=8080 -Xloggc:/var/log/jenkins/gc.log
ubuntu@hostname:~$ getent group docker
docker:x:999:jenkins
ubuntu@hostname:~$ ls -la /var/run/docker.*
-rw-r--r-- 1 root root   4 Oct 23 18:32 /var/run/docker.pid
srw-rw---- 1 root docker 0 Oct 23 18:32 /var/run/docker.sock
ubuntu@hostname:~$ sudo su -s /bin/bash jenkins
jenkins@hostname:/home/ubuntu$ docker ps
CONTAINER ID        IMAGE                      COMMAND                CREATED             STATUS              PORTS                     NAMES
Run Code Online (Sandbox Code Playgroud)

但是,在 Jenkins 构建/作业期间,它没有权限:

# …
Run Code Online (Sandbox Code Playgroud)

linux user-management user-permissions jenkins docker

9
推荐指数
1
解决办法
2万
查看次数