首页 > 解决方案 > 授予 jenkins 访问 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。在我的主机上,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

但是詹金斯仍然抱怨它没有权限。

授予詹金斯访问此套接字的权限的正确方法是什么?

标签: dockerubuntujenkins

解决方案


其他线程中的任何自定义都不起作用,但我对其进行了一些调整,并使其与以下文件一起使用:

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


推荐阅读