请启用 Javascript 以查看内容

Jenkins 使用 Docker 构建报错

 ·   ·  ☕ 2 分钟  ·  ✍ CNSRE · 👀... 阅读

作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210910030083/
相关话题:https://www.cnsre.cn/tags/故障集/


问题描述

基于docker使用jenkins 构建cicd,在执行docker build 的时候出现了权限的问题。具体报错如下

1
2
3
4
5
6
+ REPOSITORY=10.0.0.100/library/wenlong:master
+ cat
+ docker build -t 10.0.0.100/library/wenlong:master .
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.
sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/build?buildargt=10.0.0.100%version=1: 
dial unix /var/run/docker.sock: connect: permission denied

cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控

原因

docker 进程使用 Unix Socket 而不是 TCP 端口。而默认情况下,Unix socket 属于 root 用户,需要 root 权限才能访问。
这样的话 我们就需要用 root 去运行 docker 而在我们安装的时候就已经是 root 运行了,所以问题出现在 jenkins 身上。

解决方法

修改jenkins 用户权限
我是rpm安装的jenkins,所以你要找到你的jenkins配置文件。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
[root@docker-jenkins ]# find / -name "jenkins"
/run/lock/subsys/jenkins
/etc/sysconfig/jenkins
/etc/rc.d/init.d/jenkins
/etc/logrotate.d/jenkins
/var/lib/jenkins
/var/log/jenkins
/var/cache/jenkins
/usr/lib/jenkins
[root@docker-jenkins wenlong]# vim /etc/sysconfig/jenkins
#修改jenkins用户为root
...
JENKINS_USER="root"
...

运行jenkins build 验证问题,已经解决。
cnsre运维博客|Linux系统运维|自动化运维|云计算|运维监控


作者:SRE运维博客
博客地址:https://www.cnsre.cn
文章地址:https://www.cnsre.cn/posts/210910030083/
相关话题:https://www.cnsre.cn/tags/故障集/


您的鼓励是我最大的动力
alipay QR Code
wechat QR Code

Avatar
作者
CNSRE
一位只会重启的运维


目录