Jenkins Version - 2.164.1
Jenkins Docker Plugin Version – 1.1.6
Docker Version - 18.09.3, build 774a1f4
问题:-
在我的Jenkins脚本化管道部分中,有以下代码。我已经在Manage Jenkins-> Configure System下添加了我的私有Docker注册表URL和凭据。但是管道作业无法通过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'
}
}
}
答案 0 :(得分:0)
如果尝试在sh
中显式运行docker login,则可以获取有关失败原因的更多信息。最可能的原因是在连接到docker daemon时拒绝访问。因此,您需要将Jenkins帐户添加到docker组,e。 g。
sudo usermod -a -G docker jenkins
答案 1 :(得分:0)
在舞台内,请执行以下操作:
script
{
def server = Nexus.server 'docker-reg-credentails'
def buildRegistry = [ url: 'http://registryhub:8081/nexus/', credentialsId: 'docker-reg-credentails' ]
def rtDocker = Nexus.docker server: server
withDockerRegistry(registry: buildRegistry )
{
sh 'docker pull hello-world'
sh 'docker tag hello-world:latest hello-world:latest2'
rtDocker.addProperty("status", "stable")
def buildInfo = rtDocker.push 'hello-world:latest', 'docker-local'
// Step 4: Publish the build-info to Nexus: server.publishBuildInfo buildInfo
server.publishBuildInfo buildInfo
}
}