这是因为jenkins默认使用jenkins用户操作,只需要将jenkins用户加入docker 组

            dir('release') {
               
                sh "cat harbor_password.txt | docker login harbor-local.xxx.com  --username admin --password-stdin"
                sh "docker build -t ${HARBOR_IMAGE} ."
                sh "docker push ${HARBOR_IMAGE}"
                sh "echo '$IMAGETAG' >> $JENKINS_HOME/workspace/CD/xxx-CD/DOCKER_TAGS"
                echo "===============Successfully pushed Docker Image ${HARBOR_IMAGE} .==============="
                echo "Cleaning up workspace..."
                cleanWs()
            }

执行结果
在这里插入图片描述
出现“Got permission denied”报错,主要是权限问题,jenkins pipeline是在master上执行的,Jenkins是由jenkins用户启动的,但是jenkins用户没有执行docker的权限,所以导致以上报错,所以我们的解决方法如下

$ usermod -a -G docker jenkins
$ systemctl restart jenkins

重启jenkins server即可

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐