通过容器镜像服务可以便捷地构建基于容器的DevOps开发环境。本文介绍如何使用触发实现镜像代码被修改后,自动触发镜像构建,且自动触发容器服务上应用的重新部署。
前提条件
已创建镜像仓库,并绑定代码仓库,镜像仓库中构建设置为代码变更时自动构建镜像。
步骤一:创建构建镜像规则
使用触发器需要确保镜像的Tag固定保持不变。
以下描述展示了将Dockerfile文件置于master分支中,并在代码更新时,确保构建的镜像始终使用固定的Tag为v1。
登录容器镜像服务控制台。
在顶部菜单栏,选择所需地域。
在左侧导航栏,选择实例列表。
在实例列表页面单击目标企业版实例。
在企业版实例管理页面左侧导航栏,选择 。
在镜像仓库页面单击目标仓库右侧操作列中的管理。
单击左侧导航栏中的构建,在构建规则设置区域单击添加规则,在构建信息配置向导中设置参数,然后单击下一步。
参数
说明
示例值
参数
说明
示例值
类型
设置源代码仓库的类型,可以是Branch或Tag。
Branch
Branch/Tag
选择或者填写Branch/Tag,支持正则规则。当正则规则为release-(?<imageTag>\w*)时,将识别release-v1源代码变更并自动构建版本为v1的镜像(不支持立即构建),更多信息,请参见正则表达式命名捕获组。
设置正则规则后仅支持系统自动构建,不支持手动立即构建。
master
构建上下文目录
设置Dockerfile文件所在的目录。指的是相对目录,以Branch/Tag的根目录为父目录,例如您的Branch为master,您的Dockerfile文件放在master下,则您的Dockerfile目录为/。
/
Dockerfile文件名
设置Dockerfile文件名,默认为Dockerfile。
Dockerfile
在镜像版本配置向导中设置参数,单击保存,然后单击下一步。
单击新增配置,可以增加镜像版本,最多可以设置3个镜像版本。
参数
说明
示例值
参数
说明
示例值
镜像版本
设置镜像Tag,例如latest。支持命名捕获,例如使用Branch/Tag中捕获的内容。
v1
在构建配置配置向导中设置构建参数,然后单击确定。
参数
说明
参数
说明
构建架构
选择构建架构,支持并行构建,最终形成一个镜像版本对应多个架构镜像。
构建参数
镜像构建运行时参数,构建参数由区分大小写的键值对组成,您最多可以设置20个构建参数。您可以设置构建参数,该构建参数会修改Dockerfile文件中环境变量,使同一个Dockerfile文件呈现多种状态。
您可以通过以下两种方式触发构建规则:
在构建页面构建规则设置区域单击目标构建规则操作列下的立即构建,触发构建规则。
向代码仓库的master分支提交代码,触发构建规则。
步骤二:获取容器服务触发器
在ACK集群中的无状态Deployment中,将镜像拉取策略设置为总是拉取镜像(Always)(imagePullPolicy: Always
),表示每次部署或扩容都会从容器镜像服务重新拉取镜像,而不会从本地拉取镜像。
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在无状态页面,找到目标应用,单击操作列下的详情。
在目标应用详情页面中,单击触发器页签,然后单击创建触发器。
在弹出的创建触发器对话框,选择触发器行为为重新部署,然后单击确定。
目前触发器行为仅支持重新部署功能。
触发器创建完毕后,目标应用详情页面的触发器栏中将展示一条触发器链接,并复制。
步骤三:绑定仓库触发器
登录容器镜像服务控制台。
在顶部菜单栏,选择所需地域。
在左侧导航栏,选择实例列表。
在实例列表页面单击目标企业版实例。
在企业版实例管理页面左侧导航栏,选择 。
在镜像仓库页面单击目标仓库右侧操作列中的管理。
单击左侧导航栏中的事件通知,在事件通知页面上单击触发器,在触发器页面上单击创建。根据以下参数配置,然后单击确定。
参数
说明
示例值
参数
说明
示例值
名称
设置触发器名称。
test
触发器URL
输入在步骤二:获取容器服务触发器获取的触发器URL。
https://cs.console.aliyun.com/hook/trigger?token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbHVzdGVySWQiOiJjNmQxYjQxZDE3OWI2NDA2M2IyMTg2YmNhMGZkZjQ0MjIiLCJpZCIXXXXXXXXXXXXXXXXXXXXXXXXX.f80ZGxQBADnFEa7I
触发方式
设置触发方式,支持以下3种触发方式:
全部触发:只要镜像版本有更新,就会触发触发器。
表达式触发:基于正则表达式来进行镜像版本的过滤,只有当符合正则表达式的镜像版本才会触发触发器。
Tag触发:基于镜像版本列表来进行镜像版本的过滤,只有镜像版本在设置的镜像版本列表中才会触发触发器。
全部触发
步骤四:触发构建并查看信息
当您在Codeup项目的master分支修改并提交代码后,将触发仓库的构建规则进行自动构建,产生新版本的镜像。无状态Deployment会自动重新部署拉取最新版本镜像。
在镜像仓库页面单击目标仓库右侧操作列中的管理。
单击左侧导航栏中的事件通知,在事件通知页面上单击触发器,在触发器页面上,单击目标触发器操作列下的访问记录。并在访问记录弹框中单击目标访问记录ID右侧的操作列下的详情。
可以看到请求的时间、请求的参数以及请求得到的结果。其中请求的参数提供了当前仓库的相关信息。
- 本页导读 (1)
- 前提条件
- 步骤一:创建构建镜像规则
- 步骤二:获取容器服务触发器
- 步骤三:绑定仓库触发器
- 步骤四:触发构建并查看信息