代码源、代码仓库:选择用于构建镜像的代码仓库,流水线将拉取该代码仓库内源代码进行编译及构建,首次选择需要授权。目前已支持GitHub、公有GitLab、私有GitLab、码云以及工蜂等代码托管平台。
触发规则
:镜像构建被自动触发的规则条件。目前支持以下四种场景:
推送到指定分支触发:需指定分支。
推送新标签时触发构建:新建标签并推送时触发。
推送到分支时触发构建:推送至任意分支时触发,无需指定分支。
符合分支或标签规则时构建:需输入正则表达式,例如 ^refs/heads/master$,可匹配 master 分支进行触发。
Dockerfile 路径:镜像构建执行的操作基于代码仓库内的 Dockerfile,需指定该 Dockerfile 文件的路径。如不指定,默认为代码仓库根目录下名为 Dockerfile 的文件。
构建目录:镜像构建执行的工作目录,即上下文环境(context),默认为代码仓库的根目录。
版本规则:定义镜像构建生成的镜像名称,即镜像版本(tag)。支持配置自定义前缀,并组合加入“分支/标签”,“更新时间”,“commit号” 三个环境变量。其中,更新时间为执行 docker tag 指令时构建服务的系统时间。
在“应用部署”步骤中,配置以下参数,单击【确定】。
部署平台:交付流水线同时支持容器服务 TKE,弹性容器服务 EKS 及边缘容器服务 Edge。本文以容器服务 TKE 为例。
部署地域:目标集群所在地域。选择已创建的 TKE 标准集群所在地域。
部署集群:目标集群。选择已创建的 TKE 标准集群。
部署方式:当前仅支持 “更新已有工作负载”。
命名空间:已部署应用所在的命名空间。
工作负载:已部署应用的关联工作负载。
Pod容器:已部署应用的工作负载内的 Pod 容器。
完成以上配置后,可在“交付流水线” 列表页查看新建的流水线。
完成以上配置后,即可在更新应用代码后,自动触发镜像构建,推送及应用更新。
更新源代码
更新源代码,并提交至远端代码仓库。
执行流水线
源代码推送完成后,如符合镜像配置中镜像构建的触发条件,将触发流水线执行。可点击流水线查看该流水线执行记录,并查看具体步骤进度。
Checkout:检出代码。
Docker Build:基于镜像构建配置进行镜像构建,并为生成的镜像打上指定规则的Tag,如 v-{tag}-{date}-{commit}。
Docker Push:推送镜像,自动推送至关联镜像仓库内。
Deploy To TKE:使用最新推送的镜像更新关联工作负载及Pod 内同名镜像。
查看应用更新状态
前往容器服务 TKE 控制台,进入上述集群及工作负载详情页,并选择修订历史,可查看应用更新状态。如下图所示,v1版本是一开始手动部署的nginx镜像,流水线执行完成后更新为 v2 版本,使用的是自动构建出来的新的镜像。
可以直接访问该应用服务,查看是否已更新。通过查看 Servce 暴露到公网的地址,查看结果,可以看到服务已经更新。
场景二: 本地推送镜像后,自动触发部署 操作场景