无法使用Artifactory插件将Docker图像推送到Jenkins管道中的Artifactory
我在Artifactory上使用Docker注册表。我能够使用docker命令拉/推图像。现在我尝试使用Jenkins pipline推送图像 该图像称为无法使用Artifactory插件将Docker图像推送到Jenkins管道中的Artifactory,docker,jenkins,jenkins-pipeline,artifactory,docker-registry,Docker,Jenkins,Jenkins Pipeline,Artifactory,Docker Registry,我在Artifactory上使用Docker注册表。我能够使用docker命令拉/推图像。现在我尝试使用Jenkins pipline推送图像 该图像称为注册表url/docker/image:latest。 我在Artifactory上有一个docker存储库,名为docker。(我可以使用docker命令拉入和推入此回购) 此阶段描述我的人工制品配置: ... stage('Deploy Docker image'){ steps {
注册表url/docker/image:latest
。
我在Artifactory上有一个docker存储库,名为docker
。(我可以使用docker命令拉入和推入此回购)
此阶段描述我的人工制品配置:
...
stage('Deploy Docker image'){
steps {
script {
def server = Artifactory.server 'xxx'
def rtDocker = Artifactory.docker server: server
def buildInfo = rtDocker.push('registry-url/image:latest', 'docker')
//also tried:
//def buildInfo = rtDocker.push('registry-url/docker/image:latest', 'docker')
//the above results in registry/docker/docker/image..
server.publishBuildInfo buildInfo
}
}
}
...
当我使用不同的路径时,我会遇到manifest.json
错误,这可能是正常的。
我可以在:https://registry-url/artifactory/docker/image/latest/manifest.json
我在Jenkins上使用了一个全新版本的Docker:
Docker version 18.01.0-ce, build 03596f51b1
到目前为止还不错。但当我运行管道时,我在Jenkins中收到以下错误(需要50秒):
在Artifactory日志中,我看到:
2018-04-25 14:24:26,663 [http-nio-8081-exec-xx] [ERROR] (o.a.a.d.r.DockerResource:153) - Unsupported docker v2 repository request for 'image'
2018-04-25 14:24:46,684 [http-nio-8081-exec-xx] [ERROR] (o.a.a.d.r.DockerResource:153) - Unsupported docker v2 repository request for 'image'
2018-04-25 14:24:46,689 [http-nio-8081-exec-xx] [ERROR] (o.a.a.d.r.DockerResource:153) - Unsupported docker v2 repository request for 'image'
2018-04-25 14:24:46,702 [http-nio-8081-exec-xx] [ERROR] (o.a.a.d.r.DockerResource:153) - Unsupported docker v2 repository request for 'image'
我错过了什么或做错了什么
编辑:
基于此,我回到了我最初的想法:
def buildInfo = rtDocker.push('registry-url/docker/image:latest', 'docker')
我又试了一次。错误:
Could not find manifest.json in Artifactory in the following path: https://registry-url/artifactory/docker/docker/image/latest/manifest.json
两次“docker”出现在路径中,似乎不起作用。但当我在人工工厂登记时,图像就在那里。。。我还可以拉图像。看起来不错,但詹金斯的设计还是失败了
人工插件:2.15.1人工版本:5.10.3
这真的是一个很快就会修复的bug吗?试试下面这个例子。在这里,我们使用Jenkins管道将docker映像拉入/推离Artifactory:Artifactory可以配置为docker注册表,可以使用反向代理,也可以不使用反向代理。 看起来您的工件没有使用反向代理(无代理配置)进行配置。您可以阅读有关配置选项的更多信息
Jenkins Artifactory插件的2.16.1版增加了对无代理配置的支持。升级你的Artifactory插件应该可以解决你的问题。谢谢,我明天会试试,告诉你它是否有效。我看到新的更新可用,但在询问时没有。:)@我相信,我也面临着同样的问题,来自詹金斯,所以我通过从本地推送图像进行交叉检查。问题是,有没有办法从客户的角度来解决这个问题?不接触注册表端?[目前我无法访问这些内容。]
Could not find manifest.json in Artifactory in the following path: https://registry-url/artifactory/docker/docker/image/latest/manifest.json