使用触发器构建容器DevOps

更新时间:2025-01-09 05:59:01

通过容器镜像服务可以便捷地构建基于容器的DevOps开发环境。本文介绍如何使用触发实现镜像代码被修改后,自动触发镜像构建,且自动触发容器服务上应用的重新部署。

前提条件

步骤一:创建构建镜像规则

重要

使用触发器需要确保镜像的Tag固定保持不变。

以下描述展示了将Dockerfile文件置于master分支中,并在代码更新时,确保构建的镜像始终使用固定的Tagv1。

  1. 登录容器镜像服务控制台

  2. 在顶部菜单栏,选择所需地域。

  3. 在左侧导航栏,选择实例列表

  4. 实例列表页面单击目标企业版实例。

  5. 在企业版实例管理页面左侧导航栏,选择仓库管理 > 镜像仓库

  6. 镜像仓库页面单击目标仓库右侧操作列中的管理

  7. 单击左侧导航栏中的构建,在构建规则设置区域单击添加规则,在构建信息配置向导中设置参数,然后单击下一步

    参数

    说明

    示例值

    参数

    说明

    示例值

    类型

    设置源代码仓库的类型,可以是BranchTag。

    Branch

    Branch/Tag

    选择或者填写Branch/Tag,支持正则规则。当正则规则为release-(?<imageTag>\w*)时,将识别release-v1源代码变更并自动构建版本为v1的镜像(不支持立即构建),更多信息,请参见正则表达式命名捕获组

    说明

    设置正则规则后仅支持系统自动构建,不支持手动立即构建。

    master

    构建上下文目录

    设置Dockerfile文件所在的目录。指的是相对目录,以Branch/Tag的根目录为父目录,例如您的Branchmaster,您的Dockerfile文件放在master下,则您的Dockerfile目录为/。

    /

    Dockerfile文件名

    设置Dockerfile文件名,默认为Dockerfile。

    Dockerfile

  8. 镜像版本配置向导中设置参数,单击保存,然后单击下一步

    说明

    单击新增配置,可以增加镜像版本,最多可以设置3个镜像版本。

    参数

    说明

    示例值

    参数

    说明

    示例值

    镜像版本

    设置镜像Tag,例如latest。支持命名捕获,例如使用Branch/Tag中捕获的内容。

    v1

  9. 构建配置配置向导中设置构建参数,然后单击确定

    参数

    说明

    参数

    说明

    构建架构

    选择构建架构,支持并行构建,最终形成一个镜像版本对应多个架构镜像。

    构建参数

    镜像构建运行时参数,构建参数由区分大小写的键值对组成,您最多可以设置20个构建参数。您可以设置构建参数,该构建参数会修改Dockerfile文件中环境变量,使同一个Dockerfile文件呈现多种状态。

    您可以通过以下两种方式触发构建规则:

    • 构建页面构建规则设置区域单击目标构建规则操作列下的立即构建,触发构建规则。

    • 向代码仓库的master分支提交代码,触发构建规则。

步骤二:获取容器服务触发器

重要

ACK集群中的无状态Deployment中,将镜像拉取策略设置为总是拉取镜像(Always)imagePullPolicy: Always),表示每次部署或扩容都会从容器镜像服务重新拉取镜像,而不会从本地拉取镜像。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 无状态

  3. 无状态页面,找到目标应用,单击操作列下的详情

  4. 在目标应用详情页面中,单击触发器页签,然后单击创建触发器

  5. 在弹出的创建触发器对话框,选择触发器行为重新部署,然后单击确定

    说明

    目前触发器行为仅支持重新部署功能。

    触发器创建完毕后,目标应用详情页面的触发器栏中将展示一条触发器链接,并复制。

    触发连接器

步骤三:绑定仓库触发器

  1. 登录容器镜像服务控制台

  2. 在顶部菜单栏,选择所需地域。

  3. 在左侧导航栏,选择实例列表

  4. 实例列表页面单击目标企业版实例。

  5. 在企业版实例管理页面左侧导航栏,选择仓库管理 > 镜像仓库

  6. 镜像仓库页面单击目标仓库右侧操作列中的管理

  7. 单击左侧导航栏中的事件通知,在事件通知页面上单击触发器,在触发器页面上单击创建根据以下参数配置,然后单击确定

    参数

    说明

    示例值

    参数

    说明

    示例值

    名称

    设置触发器名称。

    test

    触发器URL

    输入在步骤二:获取容器服务触发器获取的触发器URL。

    https://cs.console.aliyun.com/hook/trigger?token=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbHVzdGVySWQiOiJjNmQxYjQxZDE3OWI2NDA2M2IyMTg2YmNhMGZkZjQ0MjIiLCJpZCIXXXXXXXXXXXXXXXXXXXXXXXXX.f80ZGxQBADnFEa7I

    触发方式

    设置触发方式,支持以下3种触发方式:

    • 全部触发:只要镜像版本有更新,就会触发触发器。

    • 表达式触发:基于正则表达式来进行镜像版本的过滤,只有当符合正则表达式的镜像版本才会触发触发器。

    • Tag触发:基于镜像版本列表来进行镜像版本的过滤,只有镜像版本在设置的镜像版本列表中才会触发触发器。

    全部触发

步骤四:触发构建并查看信息

当您在Codeup项目的master分支修改并提交代码后,将触发仓库的构建规则进行自动构建,产生新版本的镜像。无状态Deployment会自动重新部署拉取最新版本镜像。

  1. 镜像仓库页面单击目标仓库右侧操作列中的管理

  2. 单击左侧导航栏中的事件通知,在事件通知页面上单击触发器,在触发器页面上,单击目标触发器操作列下的访问记录。并在访问记录弹框中单击目标访问记录ID右侧的操作列下的详情。

    可以看到请求的时间、请求的参数以及请求得到的结果。其中请求的参数提供了当前仓库的相关信息。

    image

  • 本页导读 (1)
  • 前提条件
  • 步骤一:创建构建镜像规则
  • 步骤二:获取容器服务触发器
  • 步骤三:绑定仓库触发器
  • 步骤四:触发构建并查看信息
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等