我正在使用自己的私有Docker注册表,我想在推送新映像时发送Slack通知。
我使用 Huginn 来捕获注册表 webhook 通知并发送到 Slack。我的问题是,当推送具有相同信息的映像时,Docker 注册表会发送多个通知:
"action": "push"
如何仅从 docker 注册表发送一个通知?还是与最后的通知不同?
我找到了解决方案!
我只检查操作 == 推送和媒体类型 == application/vnd.docker.distribution.manifest.v2+json
同样的问题,但我修复了:
timeout
和backoff
默认值ns
不ms
使用我的配置:
notifications:
endpoints:
- name: webhook
disabled: false
url: http://example.com
timeout: 3000ms
threshold: 5
backoff: 1S
由于多种原因,Docker 注册表发送多个请求。
-
对于某些操作,同时发出多个请求,但使用不同的请求方法,例如 HEAD 然后 GET 表示操作
pull
,因此您应该始终指定 metod(例如 POST 表示push
(; -
使用两种媒体类型:较新的
application/vnd.docker.distribution.manifest.v2+json
和旧application/octet-stream
。您可以忽略最新的。