操作场景
腾讯云容器镜像服务(Tencent Container Registry,TCR)基于腾讯云 CODING DevOps 提供了镜像构建及交付流水线功能,满足容器用户快速配置并应用持续集成及持续部署的需求。如需使用更加灵活强大的持续编译、构建、交付流水线功能,请了解并使用 容器 DevOps。
目前 TCR 企业版及个人版服务均支持镜像构建功能,本文仅面向企业版进行操作说明。目前镜像构建功能支持使用托管在 GitHub、GitLab.com、Gitee 码云 及 CODING 上的源代码进行编译构建。其中,建议 CODING DevOps 用户直接在其“持续集成”功能中配置镜像构建,目前已内置“构建镜像并推送到 TCR 企业版”模板。TCR 支持四种类型的触发机制,例如推送到指定的分支触发镜像构建。支持自定义配置 Dockerfile 路径并构建目录。支持灵活配置镜像版本命名规则,例如自定义前缀-分支-构建时间-commit 号,实现镜像版本与代码更新同步管理。
前提条件
在进行 TCR 企业版镜像构建配置前,您需要完成以下准备工作:
- 已成功 购买企业版实例。
- 如果使用子账号进行操作,请参考 企业版授权方案示例 提前为子账号授予对应实例的操作权限。
- 已开通 CODING DevOps 服务,并完成授权操作。详情请参见 开通服务。
操作步骤
创建镜像仓库
参考 创建镜像仓库 完成镜像仓库创建,其中“镜像来源”选择“平台构建镜像”。
创建镜像构建规则
- 成功创建镜像仓库后,页面将自动跳转至该镜像仓库的【镜像构建】页签下。如下图所示:
说明:
若尚未开通 CODING DevOps 服务,请参照页面引导完成该服务开通,返回该页面后将正常展示该配置页。
- 单击“新建镜像构建规则”,在弹出的“新建镜像构建规则”窗口中参考以下信息,为该镜像仓库配置自动构建镜像及推送。如下图所示:
- 代码源:镜像构建使用的源代码所在的托管平台,目前已支持 GITHUB、GITLAB、私有GITLAB、GITEE、工蜂、CODING,请按需选择。
建议 CODING 用户直接在 CODING DevOps 平台内进入镜像构建模块,并使用内置的【构建镜像并推送到 TCR 企业版】模板配置镜像构建。镜像构建服务需要拉取对应源代码,首次使用请先为指定的代码源进行授权,授权后可正常列举代码仓库及分支等信息。如遇源代码授权异常问题,请提交 工单 进行咨询。 - 代码仓库:指定代码源后,如已完成该代码源授权,可选择在该源代码托管平台下的代码仓库,镜像构建服务触发后将拉取该代码仓库内源代码进行编译及构建。
- 触发规则:镜像构建被自动触发的规则条件。目前支持以下四种场景:
- 推送到指定分支触发:需指定分支。
- 推送新标签时触发构建:新建标签并推送时触发。
- 推送到分支时触发构建:推送至任意分支时触发,无需指定分支。
- 符合分支或标签规则时构建:需输入正则表达式,例如
^refs/heads/master$
,可匹配 master 分支进行触发。
- Dockerfile 路径:镜像构建执行的操作基于代码仓库内的 Dockerfile,需指定该 Dockerfile 文件的路径。如不指定,默认为代码仓库根目录下名为 Dockerfile 的文件。
- 构建目录:镜像构建执行的工作目录,即上下文环境(context),默认为代码仓库的根目录。
- 版本规则:定义镜像构建生成的镜像名称,即镜像版本(tag)。支持配置自定义前缀,并组合加入“分支/标签”,“更新时间”,“commit号” 三个环境变量。其中,更新时间为执行 docker tag 指令时构建服务的系统时间。
- 代码源:镜像构建使用的源代码所在的托管平台,目前已支持 GITHUB、GITLAB、私有GITLAB、GITEE、工蜂、CODING,请按需选择。
- 单击【确定】即可创建镜像构建规则。
管理镜像构建规则
完成镜像构建规则创建后,即可在该仓库的【镜像构建】页签下查看构建配置及构建日志,如下图所示:
可对当前构建规则进行以下管理操作:
- 立即构建
在控制台内手动触发镜像构建,可指定分支或代码版本。 - 编辑
可编辑当前的构建规则,创建过程中可配置的参数均可重新编辑。 - 删除
删除当前的构建规则。 - 自动触发
可开启或关闭该规则的自动触发。当关闭自动触发后,推送代码并符合触发规则也无法触发镜像构建,但仍可使用 "立即构建" 功能进行手动触发。
触发镜像构建并查看构建日志
配置镜像构建规则后,当有符合触发规则的源代码操作时,即可触发自动构建并推送镜像。本文以向 GitHub 内代码仓库指定分支推送新的代码更新为例。如下图所示:
对于已有构建日志,可查看执行详情或删除该日志记录。
异常处理
在使用镜像构建功能时若发生以下异常问题,请参考对应方法重新尝试,若异常仍未解决则请提交 工单 进行咨询。
源代码授权失败
可在“新建镜像构建规则”窗口中再次单击“授权源代码”进行授权,或前往对应的源代码托管平台查看第三方授权,删除 “CODING DevOps” 后再次尝试重新授权。以 GitHub 为例,第三方授权位置为:【Setting】> 【Applications】> 【Authorized OAuth Apps】。
镜像构建失败
可在构建日志中查看该次构建任务的执行详情,并基于执行详情的报错信息进行调整。例如,重新配置镜像构建配置中的参数,或调整 Dockerfile。