【问题标题】:Openshift Container Platform Jenkins unable to run docker build commandOpenshift Container Platform Jenkins 无法运行 docker build 命令
【发布时间】:2018-06-20 22:24:56
【问题描述】:

所以我正在使用一个稍微奇怪的基础架构:我有一个 openshift 容器平台,它使用图像 openshift3/jenkins-2-rhel7 在其中运行来自 docker 的 jenkins 图像

我正在尝试运行 docker build 。命令在 jenkins 管道中,我收到“无法连接到 Docker 守护程序”错误。我不明白为什么 docker 安装在机器上但没有运行,而且我目前无法访问除 cli 和控制台之外的 openshift 服务器。有没有人有关于如何获得 docker build 的建议。使用或不使用 slaves 的 jenkins 命令是否成功运行?

    node("master"){
        withEnv(["PATH=${tool 'docker'}/bin:${env.PATH}"]) {   
            docker.withRegistry( 'dockertest') {
            git url: "https://github.com/mydockertag/example.git", credentialsId: 'dockertest'
            stage "build"
            sh "docker build -t mydockertag/example -f ./Dockerfile ."
            stage "publish"
        }
    }

运行构建命令后出现以下错误:

+ docker build -t mydockertag/example -f ./Dockerfile .
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the 
docker daemon running?

【问题讨论】:

标签: docker jenkins openshift jenkins-plugins docker-swarm


【解决方案1】:

“无法在 unix:///var/run/docker.sock 连接到 Docker 守护程序。docker 守护程序是否正在运行?”错误可能有两个原因。

  1. Docker 正在运行,但执行 docker 命令的用户没有与“/var/run/docker.sock”对话的权限。尝试使用“sudo docker build”。如果您不想每次都使用“sudo”,您可以按照此处的 docker 安装后步骤 (https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user) 将您的用户添加到 docker 组。

  2. docker 守护进程根本没有启动和运行。您必须手动启动 docker 守护进程。

【讨论】:

  • 您的回复假定他们正在主机上直接运行命令。他们不是。他们在 Kubernetes (OpenShift) 环境中托管的容器内运行构建。容器没有特权,无法访问底层主机上运行的 Docker 守护进程。
【解决方案2】:

默认情况下,OpenShift Container Platform 使用任意分配的用户 ID 运行容器。对于支持以任意用户身份运行的映像,映像中的进程可能写入的目录和文件应归根组所有,并且可由该组读取/写入。要执行的文件也应该具有组执行权限。

将以下内容添加到您的 Dockerfile 设置目录和文件权限,以允许 root 组中的用户在构建的映像中访问它们:

RUN useradd -g root -G sudo  -u 1001 user && \
    chown -R user:root /some/directory && \
    chgrp -R 0 /some/directory && \
    chmod -R g=u /some/directory
#Specify the user with UID
USER 1001

请参阅 Openshift 的 Guideline 上的“支持任意用户 ID”部分

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2020-04-19
    相关资源
    最近更新 更多