【问题标题】:docker.sock permission denied while running jenkinsfile运行 jenkinsfile 时 docker.sock 权限被拒绝
【发布时间】:2021-09-02 22:04:11
【问题描述】:

我有以下 jenkinsfile,它给出了以下错误。

node {
    docker.withRegistry("https://001.dkr.ecr.eu-west-1.amazonaws.com/my-tooling") {
        docker.image('my-tooling:deploy-agent_0.0.3')
                .inside("-v /var/lib/jenkins/.ivy2:/home/jenkins/.ivy2", {
...
}

错误

尝试在 unix:///var/run/docker.sock 连接到 Docker 守护程序套接字时获得权限被拒绝:获取 http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/my -tooling:deploy-agent_0.0.3/json: 拨打 unix /var/run/docker.sock: connect: 权限被拒绝

我看到很多 answers 建议运行 sudo usermod -aG docker $USER 但由于我没有在本地运行它并且无法访问虚拟机,因为它都是基础架构代码,我如何将其添加到詹金斯文件?

我试过这样添加,

node {
    try {
        stage('set permissions') {
            sh "sudo usermod -aG docker jenkins"
            //also tried "sudo chmod 777 /var/run/docker.sock"
        }
    } finally {
        echo 'Unable to set permissions'
    }
    ...
}

但是当我收到错误时,我无法运行 sudo..

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things: 
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
script returned exit code 1

【问题讨论】:

  • 机器上是否安装了docker? jenkins 中的 docker 插件呢?如何安装 jenkins(容器或 VM 上)?因为如果你不能在 docker 组中添加用户,我不知道它是否可能。也许尝试在您的.inside() 中使用--privileged-u root
  • 刚试过.inside("-v /var/lib/jenkins/.ivy2:/home/jenkins/.ivy2 --privileged").inside("-u root -v /var/lib/jenkins/.ivy2:/home/jenkins/.ivy2") 都给出了同样的错误。谢谢
  • 两者都有?
  • 是的,同样的错误。

标签: jenkins jenkins-plugins


【解决方案1】:

如果您因为收到来自 docker 的此消息而遇到堆栈溢出问题,但您没有使用 jenkins,则很可能错误是相同的:您的非特权用户不属于 docker 组。

你可以这样做:

sudo usermod -a -G docker [用户] 在 [user] 所在的位置插入您的用户名。

您可以通过执行 grep docker /etc/group 来检查它是否成功,并看到如下内容:

docker:x:998:[用户] 在其中一行中。

然后将您的用户组 ID 更改为 docker:

newgrp 码头工人 最后,退出并重新登录

【讨论】:

  • 我在哪里运行sudo usermod -aG docker jenkins?你刚刚给了我我在其他答案中看到的内容。
  • 请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。
猜你喜欢
  • 1970-01-01
  • 2020-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
相关资源
最近更新 更多