簡體   English   中英

授予 jenkins 訪問 unix:///var/run/docker.sock 的權限

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM