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

如何通过Jenkins Pipeline向Jfrog Artifactory本地Docker仓库推送镜像?

Jenkins Pipeline推送Docker镜像至Jfrog Artifactory本地仓库操作指南

一、前置准备

  • 安装Jenkins必需插件:
    • Artifactory Plugin:用于和Jfrog Artifactory完成交互
    • Docker Pipeline Plugin:支持Docker镜像构建、推送等操作
  • 在Jenkins中配置Artifactory凭证:
    进入Jenkins「Manage Jenkins」→「Manage Credentials」,添加「Username with password」类型凭证,填入拥有Artifactory镜像推送权限的账号密码,记录好凭证ID(例如artifactory-docker-push-creds)
  • 确保Jenkins运行节点(或代理节点)已安装Docker,且能正常访问你的Artifactory仓库地址

二、Pipeline脚本示例

以下是可直接复用的Pipeline模板,按需替换占位符内容:

pipeline {
    agent any
    environment {
        // 替换为你的Artifactory本地Docker仓库完整地址
        ARTIFACTORY_REGISTRY = "your-artifactory-domain/docker-local"
        // 替换为你的镜像名称
        IMAGE_NAME = "app-backend"
        // 用构建号作为镜像标签,也可自定义为版本号等
        IMAGE_TAG = "${BUILD_NUMBER}"
        // 替换为你在Jenkins中配置的凭证ID
        ARTIFACTORY_CREDS = "artifactory-docker-push-creds"
    }
    stages {
        stage('拉取代码') {
            steps {
                git url: 'https://your-git-repo.git', branch: 'main'
            }
        }
        stage('构建Docker镜像') {
            steps {
                script {
                    // 基于项目根目录的Dockerfile构建镜像
                    docker.build("${ARTIFACTORY_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}")
                }
            }
        }
        stage('推送镜像至Artifactory') {
            steps {
                script {
                    // 自动完成登录并推送镜像
                    docker.withRegistry("https://${ARTIFACTORY_REGISTRY}", ARTIFACTORY_CREDS) {
                        def image = docker.image("${ARTIFACTORY_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}")
                        image.push()
                        // 可选:推送latest标签作为最新版本
                        image.push('latest')
                    }
                }
            }
        }
        stage('清理本地镜像') {
            steps {
                script {
                    docker.image("${ARTIFACTORY_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}").remove()
                    docker.image("${ARTIFACTORY_REGISTRY}/${IMAGE_NAME}:latest").remove()
                }
            }
        }
    }
}

三、关键注意事项

  • 镜像命名规范:必须以Artifactory Docker仓库地址作为前缀,否则无法正常推送
  • 权限验证:确认Artifactory账号对目标本地仓库拥有「Deploy/Cache」权限
  • 网络连通性:若Jenkins节点在私有环境,需确保能访问Artifactory的Docker仓库端口(默认443或80)
  • Jfrog CLI替代方案:如果偏好使用Jfrog工具链,可在Pipeline中安装Jfrog CLI,通过jf docker push命令完成推送,需提前配置Artifactory上下文

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:52:07