5

我在 docker hub 上设置了几个自动构建。我看到我可以设置一个 webhook 以在成功构建时发布到 URL,但是通知构建失败似乎更有用。有没有办法做到这一点?

我尝试添加一个 webhook,然后将故意错误的 RUN 指令推送到我的 Dockerfile。自动构建按预期失败,但没有任何内容发送到我的 webhook。

我的一些构建不是由 git 推送而是由 cron 作业触发的,所以即使我在每次提交之前测试了构建,它也不会捕捉到这种情况。由于更改通过 ADD 下载的 URL 的内容,一天成功的构建可能会在下一天失败。

那么......有没有办法获得自动构建失败的通知?如果没有,请将此视为功能请求。

4

2 回答 2

3

您可以通过进入用户设置选项并单击通知并选中相应的框来打开构建失败的基于电子邮件的通知。(感谢@docker twitter 帐户;这对我来说也不是很明显!https: //twitter.com/DockerSupport/status/555912171792527360 )

正如您所观察到的,POST 事件的 webhook 不适用于失败的构建。我想这个想法是这些更多的是用于触发一些后续事件,例如告诉机器拉新图像,而电子邮件通知对于失败的构建更有意义。

于 2015-01-16T05:33:16.997 回答
0

一种选择是轮询 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 工作。

于 2018-04-25T08:55:08.400 回答