![](/img/trans.png)
[英]Jenkins dial unix /var/run/docker.sock: connect: permission denied MacOS
[英]Give permission to jenkins to access unix:///var/run/docker.sock
我已將 docker 插件安裝到 jenkins 中,並且我正在嘗試配置 docker 雲。
我的 jenkins 安裝在 docker 容器內運行,我已綁定到主機上的 docker 套接字,如下所示:
version: '3.3'
services:
jenkins:
container_name: jenkins
ports:
- '7345:8080'
- '50000:50000'
volumes:
- /docker/jenkins/data/jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
image: 'jenkins/jenkins:lts'
此方法使用 docker-ce-cli 可以正常工作。 如果我安裝 cli 並綁定到主機的套接字,那么它就可以工作。
但是設置 jenkins 我收到一個錯誤:
在 jenkins 容器內,一切都在 UID 為 1000 的用戶“jenkins”下運行。在我的主機上,UID 1000 是一個名為“ubuntu”的用戶。
我已將此用戶添加到 docker 組
usermod -aG docker ubuntu
並檢查了套接字權限:
# ls -lisa /var/run/docker.sock
833 0 srw-rw---- 1 root docker 0 Jul 22 22:02 /var/run/docker.sock
但是 jenkins 仍然抱怨它沒有權限。
授予 jenkins 訪問此套接字的權限的正確方法是什么?
其他線程中的任何自定義都不起作用,但我對其進行了一些調整,並使其與以下文件一起使用:
FROM jenkins/jenkins
USER 0
ARG DOCKERGID=998
# Docker
RUN apt-get update \
&& apt-get install software-properties-common apt-transport-https ca-certificates gnupg-agent dialog apt-utils -y \
&& curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \
&& add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable" \
&& apt-get update \
&& apt-get install docker-ce-cli -y
# Setup users and groups
RUN addgroup --gid ${DOCKERGID} docker
RUN usermod -aG docker jenkins
USER 1000
To be able to use docker from jenkins - just add jenkins user to docker group, not ubuntu one.
usermod -aG docker jenkins
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.