Jenkins 脚本化管道作业因 docker 登录而失败

Kis*_*ore 5 jenkins docker docker-registry jenkins-pipeline

Jenkins Version - 2.164.1
Jenkins Docker Plugin Version – 1.1.6
Docker Version - 18.09.3, build 774a1f4
Run Code Online (Sandbox Code Playgroud)

问题:-

我的 Jenkins 脚本管道部分中有以下代码。我已经添加了我的私有 Docker 注册表 URL 和在 Manage Jenkins --> Configure System 下添加的凭据。但是管道作业无法登录 docker。

詹金斯的错误形式 - ERROR: docker login failed

代码:-

stage('Build') { 
  withDockerRegistry(credentialsId: 'docker-reg-credentails', url: 'http://registryhub:8081/nexus/') {
    image = docker.image('registryhub:8085/ubuntu-16:1')
    image.pull()
    docker.image('registryhub:8085/ubuntu-16:1').inside {   
      sh 'cat /etc/issue'
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*erG 0

如果您尝试显式运行 docker login ,sh您可以获得有关失败原因的更多信息。最可能的原因是连接到 docker 守护程序时访问被拒绝。所以你需要将 Jenkins 帐户添加到 docker 组,例如

sudo usermod -a -G docker jenkins
Run Code Online (Sandbox Code Playgroud)