jenkins - 如何通过网络 Hook 从 Docker Hub 与 Jenkins 通信?

标签 jenkins docker webhooks dockerhub

似乎有很多可以轮询 GitHub 的示例,但我如何轮询 Docker Hub 并基于此触发构建?

我在 Docker Hub 中为我的自动build设置了一个 webhook,但我看不到如何在 Jenkins 中轮询它。

似乎有这个 Jenkins 插件:https://wiki.jenkins-ci.org/display/JENKINS/DockerHub+Plugin

但是,据我了解,自从 Docker Hub 上的 API 更改以来,该插件已损坏。

更新:

似乎答案是使用 Build Triggers 下的 Trigger Builds Remotely 选项,但是由于匿名没有构建权限而失败。然后我改用这个插件:https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin

所以 URL 变成这样:https://jenkinsserver.com/buildByToken/build?job=test&token=test

如果我通过浏览器(甚至隐身)而不是使用 cURL 发布到该 URL,这将有效。我明白了:

$ curl -X POST https://jenkinsserver.com/buildByToken/build?job=test&token=test

<html><head><meta http-equiv='refresh' content='1;url=/securityRealm/commenceLogin?from=%2FbuildByToken%2Fbuild%3Fjob%3Dtest'/><script>window.location.replace('/securityRealm/commenceLogin?from=%2FbuildByToken%2Fbuild%3Fjob%3Dtest');</script></head><body style='background-color:white; color:white;'>

Authentication required
<!--
You are authenticated as: anonymous
Groups that you are in:

Permission you need to have (but didn't): hudson.model.Hudson.Read
 ... which is implied by: hudson.security.Permission.GenericRead
 ... which is implied by: hudson.model.Hudson.Administer
-->

</body></html>   

但是,如果我这样做,我可以通过 cURL 让它工作:

curl -X POST https://user:token@jenkinsserver.com/buildByToken/build?job=test&token=test

但是,Docker Hub 不喜欢那个 URL... enter image description here

我在这里缺少什么?我什至走在正确的轨道上吗?如果你是从 Docker Hub webhook 触发和 Jenkins 任务的人,你是怎么做的?

最佳答案

不确定这是否相关,但解决方案是像这样调用 url: http://user:token@jenkins:8080/job/my-job/build?token=secretToken

关于jenkins - 如何通过网络 Hook 从 Docker Hub 与 Jenkins 通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27912243/

相关文章:

jenkins - 使用“Jenkins参数化远程触发器插件”和“File”参数将其上传到远程Downsteream Jenkins作业

docker - 无法在 Docker 上运行 Golang 应用程序

webhooks - OneDrive 推送通知

botframework - 如何在 Telegram BotFather 中设置创建的游戏的 Url?

java - 由于 NoSuchMethodError : org. apache.tools.ant.types.resources.Resources.setCache(Z)V,Ant <junit> 任务在 Jenkins 上失败

Maven 发布插件 - 需要 SNAPSHOT 项目

jenkins - Hudson - 我该怎么做 "SVN clean up"?

docker - Elasticsearch保护连接

linux - 如何使用 docker swarm 扩展具有多个暴露端口和多个卷的应用程序?

stripe-payments - 在什么情况下会发送 stripe 的 transfer.failed webhook?