我已将docker插件安装到jenkins中,并且正在尝试配置docker cloud。
我的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容器中,所有内容都在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访问此套接字权限的正确方法是什么?
答案 0 :(得分:0)
另一个线程中的任何自定义项均无效,但我对其进行了一些调整,使其与以下文件一起工作:
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
答案 1 :(得分:-1)
要能够从jenkins使用docker,只需将jenkins用户添加到docker组,而不是ubuntu一个。
usermod -aG docker jenkins