【问题标题】:Jenkins/ MacOS - dial unix /var/run/docker.sock: connect:permission deniedJenkins/MacOS - 拨打 unix /var/run/docker.sock: connect:permission denied
【发布时间】:2021-04-14 20:46:16
【问题描述】:

我是使用 jenkins 和 docker 的新手。目前我遇到了一个错误,我的 jenkinsfile 没有对 docker.sock 的权限。有没有办法来解决这个问题?想法枯竭了

我尝试过的事情:

-sudo usermod -aG docker $USER //找不到用户模组

-sudo setfacl --modify user:******:rw /var/run/docker.sock //setfacl 未找到

-chmod 777 /var/run/docker.sock //重启后仍然收到此错误

-chown -R jenkins:jenkins /var/run/docker.sock //更改'/var/run/docker.sock'的所有权:不允许操作

错误图片:

def gv

pipeline {
    agent any
    environment {
        CI = 'true'
        VERSION = "$BUILD_NUMBER"
        PROJECT = "foodcore"
        IMAGE = "$PROJECT:$VERSION"
    }
    tools {
        nodejs "node"
        'org.jenkinsci.plugins.docker.commons.tools.DockerTool' 'docker'
    }
    parameters {
        choice(name: 'VERSION', choices: ['1.1.0', '1.2.0', '1.3.0'], description: '')
        booleanParam(name: 'executeTests', defaultValue: true, description: '')
    }
    stages {
        stage("init") {
            steps {
                script {
                   gv = load "script.groovy"
                   CODE_CHANGES = gv.getGitChanges()
                }
            }
        }
        stage("build frontend") {
            steps {
                dir("client") {
                    sh 'npm install'
                    echo 'building client'
                }
            }
        }
        stage("build backend") {
            steps {
                dir("server") {
                    sh 'npm install'
                    echo 'building server...'
                }
            }
        }
        stage("build docker image") {
            steps {
                sh 'docker build -t $IMAGE .'
            }
        }
        // stage("deploy") {
        //     steps {
        //         script {
        //             docker.withRegistry(ECURL, ECRCRED) {
        //                 docker.image(IMAGE).push()
        //             }
        //         }
        //     }
        // }
    }
    // post {
    //     always {
    //         sh "docker rmi $IMAGE | true"
    //     }
    // }
}

【问题讨论】:

    标签: macos docker unix jenkins


    【解决方案1】:

    如果你重新启动系统或 docker 服务,docker.sock 权限将会丢失。

    为了使其持久性设置一个 cron 以在每次重启后更改所有权

    @reboot chmod 777 /var/run/docker.sock
    

    当你重新启动 docker 时,请确保运行以下命令

    chmod 777 /var/run/docker.sock
    

    或者您也可以为其设置一个 cron,每 5 分钟执行一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多