You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins中使用JFrog插件推送Docker镜像至Artifactory的疑问

Jenkins JFrog插件rtDockerPush参数解析与重打标签疑问解答

参数理解纠正

你之前对targetRepo的理解有误,正确的参数定义是:

  • image:本地构建完成的Docker镜像标签(例如my-image:SOME_GIT_COMMIT)
  • targetRepo:Artifactory中目标Docker仓库的仓库名称(例如my-docker-registry),而非本地镜像标签

无需手动重打标签的正确用法

你之前手动打标签的操作是绕了弯路,rtDockerPush插件本身会自动完成镜像标签的重写与推送,正确的代码示例如下:

stage("Push image to Artifactory") {
  steps {
    // 直接推送本地构建好的镜像,无需手动重打标签
    rtDockerPush (
      serverId: artifactory_server,
      image: tag, // 本地镜像标签:my-image:SOME_GIT_COMMIT
      targetRepo: 'my-docker-registry' // Artifactory中的Docker仓库名
    )

    // 发布构建信息
    rtPublishBuildInfo (
      serverId: artifactory_server
    )
  }
}

关于手动打标签能成功的原因

你之前手动将本地镜像打标签为artifactory.example.com/my-docker-registry/my-image:latest时,插件会自动从这个完整标签中解析出目标仓库名my-docker-registry,同时识别到这个带URL的标签对应的本地镜像存在,所以能推送成功。但这不是插件的标准用法,属于“巧合适配”。

之前报错的根源

你最初未手动打标签时出现“Image not found”,是因为错误地将本地镜像标签传给了targetRepo,而image参数传的是带Artifactory URL的标签——此时本地Docker中根本不存在这个带URL的镜像,自然会报错。

内容的提问来源于stack exchange,提问作者Xophmeister

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:45:49