簡體   English   中英

為什么我的Docker構建無法在jenkins代理上失敗?

[英]Why does my docker build fail on jenkins agent?

這是我在項目中的Jenkinsfile管道

pipeline {
    agent {
        docker {
            image 'docker:dind'
            args '-u root:root -p 3000:3000 --privileged'
        }
    }

    environment {
        CI = 'true'
    }

    stages {
        stage('docker build') {
            when {
                branch 'master'
            }
            steps {
                sh 'docker build --label v1.0.0 -t myrepo/myapp:v1.0.0'
            }
        }
    }
}

我分別有一個詹金斯主代理和從代理。 上面的管道在主節點上運行良好,但是如果在從代理節點上運行,則會遇到以下錯誤:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

我非常確定docker正在代理節點上運行,因為我可以使用ssh並成功運行docker命令。

為什么在主代理和從代理上運行時其行為不同? 我應該如何解決? 非常感謝!

我不知道為什么,但是我通過以下更改對其進行了修復:將-v /var/run/docker.sock:/var/run/docker.sock到args。

pipeline {
    agent {
        docker {
            image 'docker:dind'
            args '-u root:root -p 3000:3000 --privileged -v /var/run/docker.sock:/var/run/docker.sock'
        }
    }

    environment {
        CI = 'true'
    }

    stages {
        stage('docker build') {
            when {
                branch 'master'
            }
            steps {
                sh 'docker build --label v1.0.0 -t myrepo/myapp:v1.0.0'
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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