如何通过Docker镜像仓库的Webhook实现镜像构建通知

浅伟大大_5016

浅伟大大_5016

2026-04-14

372人浏览

原创

Docker镜像仓库Webhook通知本质是仓库在构建完成时主动向指定URL发送HTTP请求,实现比轮询更及时的结果推送;阿里云ACR、腾讯云TCR支持构建事件,Docker Hub已弃用该功能,Harbor需依赖CI工具触发;可用almir/webhook快速搭建接收端,并对接钉钉、企业微信或Slack等通知渠道。

如何通过docker镜像仓库的webhook实现镜像构建通知

通过 Docker 镜像仓库的 Webhook 实现镜像构建通知,本质是让仓库在构建完成(成功或失败)时,主动向你指定的服务地址发送 HTTP 请求,把构建结果实时推给你。这比轮询日志或等邮件更及时,也更适合接入钉钉、企业微信、Slack 等内部通讯工具。

确认你的镜像仓库是否支持构建事件 Webhook

不是所有平台都原生支持“构建完成”这类事件的通知,需按平台区分:

  • 阿里云 ACR:完全支持。在“构建规则”页面启用后,可配置触发事件为 Build Success 或 Build Failure,并填写目标 URL。
  • 腾讯云 TCR:支持构建结果通知,控制台中进入“事件通知” → 新建规则 → 选择事件类型为“镜像构建完成”,再设置接收地址和过滤条件(如特定命名空间/仓库名)。
  • Docker Hub:已弃用 Automated Builds 功能,不再提供构建事件 Webhook;仅保留基础的 push 事件通知,无法获知构建过程状态。
  • Harbor:自身不直接触发构建,但若你用 Jenkins 或 GitLab CI 触发构建,可让 CI 工具在构建结束后调用 Harbor API 或自定义 Webhook 地址来通知结果。

配置 Webhook 接收端(轻量级方案)

你不需要自己写完整服务,可用现成工具快速落地:

Docker Hardening
Docker Hardening

专业的Docker安全配置生成器,符合CIS Benchmark v1.8.0标准。

下载
  • 用 almir/webhook 镜像启动一个接收服务:
    docker run -d -p 9000:9000 -v $(pwd)/hooks.json:/etc/webhook/hooks.json almir/webhook -hooks=/etc/webhook/hooks.json -verbose
  • 在 hooks.json 中定义处理逻辑,例如匹配构建成功事件并转发到钉钉:
    {"id": "acr-build-success", "execute-command": "/bin/sh", "command-working-directory": "/tmp", "response-message": "已收到构建成功通知"}
  • 确保 Webhook URL 是公网可访问的(如用内网部署,需配合内网穿透或反向代理)。

解析构建事件中的关键字段

不同平台推送的 JSON 结构略有差异,但通常包含以下核心信息,可用于判断状态和生成通知:

  • status 或 build_status:值为 success、failed、cancelled
  • repository.name:镜像仓库名(如 myapp)
  • image 或 digest:生成的镜像标签或摘要(如 latest、sha256:abc123...)
  • trigger:触发方式(如 git-push、manual)
  • build_id 和 start_time:便于追踪和超时判断

对接常用通知渠道(免开发)

多数通知平台接受标准 JSON POST,只需把 Webhook URL 换成对应入口即可:

  • 钉钉机器人:URL 形如 https://oapi.dingtalk.com/robot/send?access_token=xxx,注意请求头加 Content-Type: application/json,body 用钉钉格式封装消息。
  • 企业微信机器人:URL 为 https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx,同样需按其文档组织 JSON 内容(支持文本、markdown、卡片)。
  • Slack Incoming Webhook:直接填 Slack 提供的 https://hooks.slack.com/services/... 地址,payload 使用 Slack Block Kit 格式更美观。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

docker

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2275

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3722

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1236

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

4319

7

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

7319

9

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

2040

6

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

1214

5

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

4737

7

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

4661

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Docker Desktop故障排查手册
Docker Desktop故障排查手册

共0课时 | 0人学习

Docker镜像构建手册
Docker镜像构建手册

共0课时 | 0人学习