容器镜像服务企业版支持从源代码到容器镜像的持续集成能力,具备安全、高并发、稳定、高效等特性。容器镜像服务企业版支持基于Dockerfile文件的构建规则,自动触发镜像构建,然后运行Dockerfile执行构建,构建完成后自动提交镜像到容器镜像仓库。本文介绍如何使用容器镜像企业版构建镜像。
前提条件
- 已创建容器镜像服务企业版实例。具体操作,请参见创建企业版实例。
- 已准备构建镜像的Dockerfile文件。
背景信息
容器镜像构建服务具备安全、稳定、高效等特性:
- 安全:镜像构建时,系统会将单个任务派发到全新、独占、环境隔离的机器上执行构建,保障代码、镜像资产安全。
- 稳定:由于独占机器资源,单代码仓库多次构建的时间消耗十分稳定。
- 智能加速:
- 系统默认使用高效构建工具BuildKit,具备强大的构建能力(尤其针对多阶段构建场景),支持丰富的构建特性。
- 系统托管了常用基础镜像。使用这些基础镜像,使构建过程无需进行任何镜像拉取,大大缩减构建时间。
- 系统使用远程构建缓存来加速构建过程。
容器镜像构建服务支持多种代码托管平台、加速镜像制作等能力:
- 代码托管平台:支持以下代码托管平台。
代码平台 代码平台版本 绑定方式 触发构建限制 阿里云Codeup 全部 私人访问令牌 无 阿里云Code 全部 Code OAuth授权 不支持提交代码自动触发镜像构建 Gitee 全部 Gitee OAuth授权 无 GitHub 仅支持GitHub个人版 GitHub OAuth授权 无 GitLab 全部 私人访问令牌 无 - 加速镜像制作:系统支持制作按需加载的镜像,支持在普通镜像推送完成后,自动制作加速镜像。具体操作,请参见按需加载容器镜像。
步骤一:绑定源代码平台
构建服务前,您需要绑定源代码平台。详细介绍,请参见绑定源代码托管平台。
重要
- 本地仓库不支持镜像构建功能。
- 接入VPC内的私有GitLab,请参见使用VPC安全构建模式构建容器镜像。
步骤二:创建命名空间
- 登录容器镜像服务控制台。
- 在顶部菜单栏,选择所需地域。
- 在左侧导航栏,选择实例列表。
- 在实例列表页面单击目标企业版实例。
- 在企业版实例管理页面选择 。
- 在命名空间页面单击创建命名空间。
- 在创建命名空间对话框中设置命名空间名称、是否自动创建仓库、默认仓库类型。单击确定。
步骤三:创建镜像仓库
创建镜像仓库,并绑定代码仓库,此代码仓库触发的镜像构建都会推送到该镜像仓库下。
步骤四:构建镜像
说明 如果您的镜像仓库管理页面没有构建,说明绑定源代码失败,请参见步骤一重新绑定源代码。
构建镜像示例一:基于固定分支main构建镜像(支持手动立即构建)
基于固定分支main构建镜像的规则参数配置示例如下:
- 类型:Branch
- Branch/Tag:main
- Dockerfile目录:/
- Dockerfile文件名:Dockerfile
- 镜像版本:latest
当main分支上源代码变更或手动单击立即构建时,会触发镜像构建。构建的工作目录是/,文件为构建工作目录下名为Dockerfile的文件。镜像构建完成后生成的镜像版本为latest,构建规则如下图所示。

构建镜像示例二:基于正则规则匹配分支构建镜像(不支持手动立即构建)
基于正则规则匹配分支构建镜像的规则参数配置示例如下:
- 类型:Branch
- Branch/Tag:release-(?<imageTag>\w*)
- Dockerfile目录:/
- Dockerfile文件名:Dockerfile
- 镜像版本:${imageTag}
- 时间:yyyyMMddHHmm
- Commit ID:30
当以release-
开头的分支源代码变更时,会触发镜像构建。构建的工作目录是/,文件为构建工作目录下名为Dockerfile的文件。
以release-v1
的分支源代码变更为例,正则规则release-(?<imageTag>\w*)
会将分支名中的v1
捕获给变量imageTag
,并在镜像版本中使用该变量。镜像构建完成后生成的镜像版本为v1-202010151625-d4ef3dc3b77a011a5779eec7efdd45
,构建规则如下图所示。

相关操作
镜像构建完成后,您还可以进行以下操作:
- 您可以在ACK集群中免密拉取镜像。具体操作,请参见使用免密组件拉取容器镜像。
- 您可以在ACK集群中使用镜像创建应用。具体操作,请参见创建无状态工作负载Deployment。
- 您可以在ACK集群中使用P2P加速功能提升镜像拉取速度。具体操作,请参见在ACK或ASK集群中使用P2P加速。