1. 持续集成
  2. 词汇表

推送到 CODING Docker 制品仓库

本插件可以帮助你在 CI 中推送构建环境中的 Docker 镜像到制品仓库,并支持将构建过程中的关键信息写入制品属性。

快速开始

仅需要填写构建环境中的镜像 tag,以及需要推送的仓库名称(默认推送到本项目仓库),便可推送制品到 CODING 制品仓库。

文本编辑器插件配置如下:

stage {
  steps {
    useCustomStepPlugin(
      key: '64:artifact_docker_push', 
      version: '1.0', 
      params: [
        image: 'node-express',
        repo: 'docker'
      ]
    )
  }
}

详细参数

本插件还支持您将镜像推送到任意 CODING 企业或 WePack 制品仓库中,同时支持自定义制品属性。

stage {
  steps {
    useCustomStepPlugin(
      key: 'artifact_docker_push', 
      version: '1.0', 
      params: [
        image: 'my-image:1.0.0',
        repo: 'my-repo',
        // 登陆 Docker 仓库时用的 Docker 仓库地址
        host: 'myteam-docker.pkg.coding.net',
        // 项目名 / 命名空间名
        project: 'my-project',
        // 推送至仓库所用的用户民 / 密码 / token
        username: 'repo-login-username',
        password: 'repo-login-password',
        // 自定义属性
        properties: '[{\"name\":\"key1\",\"value\":\"value1\"},{\"name\":\"key2\",\"value\":\"value2\"}]',
        // 当制品仓库 host 的域名和系统域名不一致时填写,一般情况下不用填写
        systemHost: 'wepack.hello.net'
      ]
    )
  }
}

参数详情

参数 描述 默认值 备注
image 您需要推送的当前环境中制品 tag,例如 my-image:1.0.0 - 必填;如果当前构建环境中,没有该 tag,系统会尝试匹配该制品名称的其他版本;
host 推送目标制品仓库 host ${CCI_CURRENT_TEAM}-docker.pkg.${CCI_CURRENT_DOMAIN} 非必填;如果您需要推送的制品仓库 host 协议为 http,需要明确定义
project 推送目标制品仓库所在项目 ${PROJECT_NAME.toLowerCase()} 非必填;
repo 推送目标制品仓库 - 必填;
properites 推送到目标仓库时自动写入制品的属性 默认属性列表详见下表 非必填;如果您自定义的属性名如果与默认值重合,则自定义属性值会覆盖默认属性值
username 访问推送目标仓库认证用户名 ${PROJECT_TOKEN_GK} 请输入项目令牌 / 个人令牌的用户名
password 访问推送目标仓库认证密码 ${PROJECT_TOKEN} 请输入项目令牌 / 个人令牌
systemHost 团队 / 系统 host ${${CCI_CURRENT_TEAM}}.${CCI_CURRENT_DOMAIN} 非必填;只有当制品仓库域名和系统域名不一致时,才需要填写本字段

参数默认值相关 CODING CI 环境变量说明

环境变量名 描述
CCI_CURRENT_WEB_PROTOCOL 当前构建环境的 PROTOCOL,例如 https
CCI_CURRENT_TEAM 当前构建环境的团队名,例如 codingcorp
CCI_CURRENT_DOMAIN 当前构建环境的域名,例如 coding.net
PROJECT_NAME 当前 CI job 所在项目名,例如 coding-artifacts
PROJECT_TOKEN_GK 项目令牌用户名
PROJECT_TOKEN 项目令牌密码

properties 默认值

制品属性名 制品属性值(环境变量名) 描述
ci.project.url PROJECT_WEB_URL CI 所在项目 url
ci.project.name PROJECT_NAME CI 所在项目名
ci.job.id JOB_ID CI 构建计划 id
ci.job.name CCI_JOB_NAME CI 构建计划名称
ci.build.number CI_BUILD_NUMBER CI 构建记录编号
ci.build.trigger.method CCI_TRIGGER_METHOD CI 构建记录触发方式
ci.build.trigger.user.name TRIGGER_USER_NAME CI 构建记录触发者
ci.build.trigger.user.email TRIGGER_USER_EMAIL CI 构建记录触发 email
git.repo.http.url GIT_HTTP_URL 构建目标代码仓库地址(https 协议)
git.repo.ssh.url GIT_SSH_URL 构建目标代码仓库地址(ssh 协议)
git.repo.name DEPOT_NAME 构建目标代码仓库名
git.branch GIT_LOCAL_BRANCH 构建目标分支
git.commit GIT_COMMIT 构建目标 commit
git.tag GIT_TAG 构建目标 tag
git.committer.name GIT_COMMITTER_NAME 代码提交者
git.committer.email GIT_COMMITTER_EMAIL 代码提交者 email

上一篇中断信号
最近更新
感谢反馈有用
感谢反馈没用

在阅读中是否遇到以下问题?

您希望我们如何改进?