Docker Hub Webhooks
预计阅读时间:3分钟
您可以使用Webhooks来响应存储库中的push事件而在另一个服务中引起操作。Webhooks是发送到您在Docker Hub中定义的URL的POST请求。
通过Docker Hub存储库中的“ Webhooks”选项卡配置webhooks:
创建Webhooks
要创建一个Webhook,请访问您存储库的webhooks选项卡。然后:
- 为网络挂钩提供名称
- 提供目标Webhook URL。这是webhook POST请求的传递位置:
查看Webhook的交付历史
您可以通过单击Webhook的子菜单然后单击“查看历史记录”来查看Webhook传递历史记录。
然后,您可以查看传递历史记录,以及传递POST请求是成功还是失败:
Webhook有效负载示例
Docker Hub Webhook有效负载具有以下有效负载JSON格式:
{
"callback_url": "https://registry.hub.docker.com/u/svendowideit/testhook/hook/2141b5bi5i5b02bec211i4eeih0242eg11000a/",
"push_data": {
"images": [
"27d47432a69bca5f2700e4dff7de0388ed65f9d3fb1ec645e2bc24c223dc1cc3",
"51a9c7c1f8bb2fa19bcd09789a34e63f35abb80044bc10196e304f6634cc582c",
"..."
],
"pushed_at": 1.417566161e+09,
"pusher": "trustedbuilder",
"tag": "latest"
},
"repository": {
"comment_count": 0,
"date_created": 1.417494799e+09,
"description": "",
"dockerfile": "#\n# BUILD\u0009\u0009docker build -t svendowideit/apt-cacher .\n# RUN\u0009\u0009docker run -d -p 3142:3142 -name apt-cacher-run apt-cacher\n#\n# and then you can run containers with:\n# \u0009\u0009docker run -t -i -rm -e http_proxy http://192.168.1.2:3142/ debian bash\n#\nFROM\u0009\u0009ubuntu\n\n\nVOLUME\u0009\u0009[/var/cache/apt-cacher-ng]\nRUN\u0009\u0009apt-get update ; apt-get install -yq apt-cacher-ng\n\nEXPOSE \u0009\u00093142\nCMD\u0009\u0009chmod 777 /var/cache/apt-cacher-ng ; /etc/init.d/apt-cacher-ng start ; tail -f /var/log/apt-cacher-ng/*\n",
"full_description": "Docker Hub based automated build from a GitHub repo",
"is_official": false,
"is_private": true,
"is_trusted": true,
"name": "testhook",
"namespace": "svendowideit",
"owner": "svendowideit",
"repo_name": "svendowideit/testhook",
"repo_url": "https://registry.hub.docker.com/u/svendowideit/testhook/",
"star_count": 0,
"status": "Active"
}
}
验证Webhook回调
要验证Webhook链中的回调,您需要
- 检索
callback_url
请求的JSON有效负载中的值。 - 向包含有效JSON正文的URL发送POST请求。
注意:只有在最后一次回调得到验证后,链请求才被视为已完成。
回调JSON数据
在回调数据中可以识别以下参数:
state
(必需):接受的值是success
,failure
,和error
。如果状态不是success
,则Webhook链被中断。description
:包含Docker Hub上可用的杂项信息的字符串。最多255个字符。context
:包含操作上下文的字符串。可以从Docker Hub检索。最多100个字符。target_url
:可以在其中找到操作结果的网址。可以在Docker Hub上检索。
回调有效负载示例:
{
"state": "success",
"description": "387 tests PASSED",
"context": "Continuous integration by Acme CI",
"target_url": "https://ci.acme.com/results/afd339c1c3d27"
}