若您想实现自动化的持续集成功能,您可以使用阿里云镜像服务触发器,在成功构建新的镜像后,将会自动触发容器服务上应用拉取新的镜像,并进行重新部署。
触发器安全规则
HTTP服务:默认使用80端口。
如果要使用其他端口,请在触发器URL末尾手动添加端口号,而且只能选择以下端口号:80、21、443、70、210、280、488、591、777、1025~65535。
HTTPS服务:默认使用443端口。
只支持默认的443端口,如果要使用其他端口号,请使用HTTP服务。只支持使用标准证书,不支持使用自签证书。
触发条件
容器镜像服务ACR提供了两种不同的方式来设置触发器的触发条件:表达式触发和Tag触发。之前未设置触发条件的触发器会默认为全部触发类型。
表达式触发:基于正则表达式来进行Tag的过滤,只有当符合正则表达式的Tag才会继续触发触发器。
可以填写简单的正则表达式,如
release-v.*
,则只有Tag为release-v
开头的镜像版本在构建后,才会触发后续持续集成的流程;否则为未触发状态,访问记录中访问状态码将显示“未触发”。单击访问记录,可以查看触发器的历史访问详情。
Tag触发:基于用户筛选的Tag列表来进行触发。
可以在列表中筛选需要触发的Tag,最多可选10个,则只有当Tag在列表中时,才会在镜像构建后触发触发器;否则为未触发状态,访问记录中访问状态码将显示“未触发”。
单击访问记录,可以查看触发器的历史访问详情。
通知内容
触发器的通知内容包含了镜像仓库的信息,以及镜像的版本信息,如下所示。其中,镜像仓库信息包括了仓库的Namespace、Name以及仓库对应的Region等。
POST /payload HTTP/1.1
Content-Type: application/json
Request URL: https://cs.console.aliyun.com/hook/trigger?triggerUrl=YzRmMWE5YzM2ZjMzYzQ0NmFiMGYzNWJlMmM2MjM2NzIyfGV4cHJlc3N8cmVkZXBsb3l8MThlMmllY2drdXYyZXw=&secret=365a4a664b45615438716a487a75695a7ac48329224b35b073c2197374e7d62a
Request method: POST
{
"push_data": {
"digest": "sha256:457f4aa83fc9a6663ab9d1b0a6e2dce25a12a943ed5bf2c1747c58d48bbb4917",
"pushed_at": "2016-11-29 12:25:46",
"tag": "latest"
},
"repository": {
"date_created": "2016-10-28 21:31:42",
"name": "repoTest",
"namespace": "namespace",
"region": "cn-hangzhou",
"repo_authentication_type": "NO_CERTIFIED",
"repo_full_name": "namespace/repoTest",
"repo_origin_type": "NO_CERTIFIED",
"repo_type": "PUBLIC"
}
}