制品库使用

产品功能介绍

制品库用以管理源代码编译后的构建产物,支持 Docker Image、Maven/Jar、Kubernetes Helm、Nodejs Npm 包等常见制品库类型,制品库可以跟源代码协同进行版本化控制,可以与本地各构建工具和云上的持续集成、持续部署无缝结合,并支持漏洞扫描等特性。

功能设置

  1. 新建制品库仓库时必须选择仓库类型,支持 Docker Image、Maven/Jar、Kubernetes Helm、Nodejs Npm 包等常见制品库类型。

  2. 新建制品库时须确认权限范围。

功能说明

制品库的层级关系为:仓库 > 包 > 版本,每个层级描述如下:

  • 仓库:用于管理不同类型的仓库和仓库下的包资源,可以设置仓库对外的访问权限。

  • :构建产物对外提供访问的基础单元,用于介绍当前构建产物的用途和使用指引。

  • 版本:列出某个包下的所有构建产物,详细记录了每次构建产物的版本迭代更新变化。

制品库的层级关系如图所示:

新建制品库

  1. 进入项目,在左侧栏选择【制品库】,再点击【新建仓库】。

  1. 填写制品库基本信息。包括仓库类型、仓库名称、仓库描述以及权限范围。填写完后点击“确认新建”。

制品库仓库对外的权限

项目内:本项目成员可读,写。其他成员不可读,写。

企业内:本项目成员可读,写。企业内其他成员可读不可写。其他成员不可读,写。

公开:本项目成员可读,写。非本项目成员和匿名成员可读不可写。

如此,我们就来到了制品库的展示界面。

新建多个制品仓库

在制品库列表,点击【新建】,即可新建多个制品库。

仓库列表按仓库的创建时间倒序排序。

设置制品仓库信息

在仓库信息页,点击【设置仓库】,即可进行对仓库的设置:

发布你的本地包到「CODING 制品库」

本节以 docker 镜像为制品举例。

本地构建好 docker 镜像

请先在本地安装好 docker 环境。

以 Docker 官方的示例镜像“hello-world”为例,在终端输入命令:

 docker run hello-world

此时 Docker 会自动下载 hello-world 镜像到本地并运行,打印出成功的提示,如图所示:

查看本地镜像列表,在终端输入命令:

 docker images ls

可以看到,刚才构建的 hello-world 镜像在列表中:

注意IMAGE ID,这个 ID 是镜像的唯一标识。

给本地 docker 镜像打上标签

为了区分众多不同的 docker 镜像,我们需要遵循 <PACKAGE>:<VERSION> 的命名规则给每个 docker 镜像打上标签(tag),其中 <PACKAGE> 表示给镜像起的包名,<VERSION> 表示给镜像设置的版本号。打标签的终端命令如下:

 docker tag <IMAGE_ID> example-docker.pkg.coding.net/example/example/<PACKAGE>:<VERSION> //请按照制品库界面的指引信息,把 example 换成你项目的实际信息

例如,我把本地的 hello-world 镜像打上标签 hello-world:v1 ,代表这是 hello-world 包的 v1 版本。

此时,我们再输入 docker images ls 查看本地 docker 镜像列表:

可以看到,列表中多了一个刚打好标签的镜像。

登录「CODING 制品库」

输入以下命令在终端内登录到「CODING 制品库」:

 docker login -u <USERNAME> -p <PASSWORD> example-docker.pkg.coding.net //请按照制品库界面的指引信息,把 example 换成你项目的实际信息

其中,<USERNAME> 代表你 CODING 账号的登陆邮箱或者手机号,<PASSWORD> 代表你 CODING 账号的密码。

例如我的登录命令是这样的:

登录成功会返回 Login Succeeded 的提示。

推送本地 docker 镜像到「CODING 制品库」

使用 docker push 命令来进行推送操作,完整命令如下:

 docker push example-docker.pkg.coding.net/example/example/<PACKAGE>:<VERSION> //请按照制品库界面的指引信息,把 example 换成你项目的实际信息

下图是我推送镜像成功的截图,返回信息带有 Pushed

查看包列表

把本地的包(<PACKAGE>)推送到项目里的制品库后,我们就可以在制品库的【包列表】界面看到所有上传的包了。

例如现在我们可以看到刚才上传的 docker 镜像包:

设置包的信息

从包列表点击不同的包名,可以进入每个包的信息页,在这里可以进行对包的设置。

设置项包含:许可证、包描述、成熟度、Web 站点 URL、问题跟踪 URL、版本控制 URL 等。

如图所示:

  • 包名称:包名仅支持 1-31 位英文、数字、下划线(_)、中划线(-)、点(.)的组合。不可与本仓库其他包名称重复,可以其他仓库内包名重复;

  • 包描述:支持 100 位以内的任意类型字符;

  • 许可证:支持多种常见许可证选择(具体在下拉框中查看),点击“清空已选项”后可进行重新选择;

  • 站点、问题跟踪、版本 VCS 的 URL 要求 http/https 格式;

  • 公开统计数据中的下载次数:勾选后包下载次数将会公开;

在「CODING 制品库」里新建包

新键包的方式有两种,除了通过推送本地包到制品库上以外,还可以直接先在【包列表】里新建一个包,再从本地推送。

填好基本信息后,我们就可以按照“发布你的本地包到「CODING 制品库」”一节,继续进行操作。

查看版本列表

每个包可包含多个版本。在包的信息页,点击【版本列表】,即可以看到这个包所包含的所有版本。

可以看到,这个名为 hello-world 的包( <PACKAGE> )里,包含之前推送的 v1 版本( <VERSION> )。

多个版本按最近更新时间倒序排序,最近更新时间是指最近上传版本的时间。

拉取制品

设置你的凭证

输入以下命令在终端内登录到「CODING 制品库」:

 docker login -u <USERNAME> -p <PASSWORD> example-docker.pkg.coding.net //请按照制品库界面的指引信息,把 example 换成你项目的实际信息
拉取制品
 docker pull example-docker.pkg.coding.net/example/example/<PACKAGE>:<VERSION> //请按照制品库界面的指引信息,把 example 换成你项目的实际信息

<VERSION> – 可选。未指定时,“latest”将用作版本名称。

清空制品仓库

此操作会清空这个制品仓库里的所有包。

在仓库信息页,点击【设置仓库】,即可进行对仓库的清空:

删除制品仓库

此操作会删除这个制品仓库,包括删除仓库里的所有包。

在仓库信息页,点击【设置仓库】,即可进行对仓库的删除: