Jenkins job docker 沒有權限


問題描述

基於docker使用jenkins 構建cicd,在執行docker build 的時候出現了權限的問題。具體報錯如下
+ 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?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&session=espgntl9dcqvfkpmkadffphrz&shmsize=0&t=10.0.0.100%2Flibrary%2Fwenlong%3Amaster&target=&ulimits=null&version=1: dial unix /var/run/docker.sock: connect: permission denied

 

原因

docker進程使用Unix Socket而不是TCP端口。而默認情況下,Unix socket屬於root用戶,需要root權限才能訪問。
這樣的話 我們就需要用root去運行docker 而在我們安裝的時候就已經是root運行了,所以問題出現在jenkins身上。

解決方法

修改jenkins 用戶權限
我是rpm安裝的jenkins,所以你要找到你的jenkins配置文件。
[root@docker-jenkins wenlong]# 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 驗證問題
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM