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