我在docker hub上设置了几个自动化的构建。我看到我可以设置一个webhook来在构建成功时发布到URL,但似乎更有用的是收到构建失败的通知。有没有办法做到这一点?
我尝试添加一个webhook,然后故意将一个错误的运行指令推送到我的Dockerfile中。正如预期的那样,自动构建失败了,但没有任何内容发送到我的webhook。
我的一些构建不是由git推送触发的,而是由cron作业触发的,所以即使我在每次提交之前测试构建,它也无法捕捉到这种情况。前一天成功的构建可能会在第二天失败,因为更改了通过ADD下载的URL的内容。
So...is有没有办法获得自动化构建失败的通知?如果不是,就认为这是一个功能请求。
发布于 2015-01-16 13:33:17
您可以打开基于电子邮件的构建失败通知,方法是在您的用户设置选项下单击通知并选中相应的复选框。(感谢@docker推特账号;这对我来说也不是很明显!https://twitter.com/DockerSupport/status/555912171792527360 )
正如您所观察到的,POST事件的webhook对于失败的构建不可用。我的想法是,这些更多的是为了触发一些后续事件,比如告诉机器拉出新的映像,而电子邮件通知对于失败的构建更有意义。
发布于 2018-04-25 16:55:08
一种选择是轮询Docker Hub v2 API,并在构建历史报告失败(-1)或构建保持太长时间时模拟丢失的通知。这里描述了解决方案:Docker on-failure Webhook,它基于Axibase时序数据库沙箱映像。
docker run -d -p 8443:8443 -p 9443:9443 \
--name=atsd-sandbox \
--env NAMESPACE='google' \
--env NOTIFY_URL='https://webhook.site/71fd9feb-8751-4afd-9e13-16072a34b259' \
--env ATSD_IMPORT_PATH='https://raw.githubusercontent.com/axibase/atsd-use-cases/master/how-to/docker/resources/notify.xml,https://raw.githubusercontent.com/axibase/atsd-use-cases/master/how-to/docker/resources/rule.xml' \
--env COLLECTOR_IMPORT_PATH='https://raw.githubusercontent.com/axibase/atsd-use-cases/master/how-to/docker/resources/job.xml' \
axibase/atsd-sandbox:latest如果构建间歇性失败,您甚至可以编写规则,通过使用远程触发器启动重试来“报复”Docker Hub。

免责声明:我为Axibase工作。
https://stackoverflow.com/questions/27281449
复制相似问题