如何通过Web钩子从Docker Hub与Jenkins进行通信?
似乎有很多的例子来轮询GitHub,但我怎么能轮询docker集线器和触发一个基于它的构build?
我在Docker Hub中有一个webhook,用于自动构build,但是我不知道如何在Jenkins中进行轮询。
似乎有这个Jenkins插件: https : //wiki.jenkins-ci.org/display/JENKINS/DockerHub+Plugin
但是,据我了解,自从Docker Hub发生API更改以来,该插件已被破坏。
更新:
看起来答案是使用“构build触发器”下的“触发器构build远程”选项,但由于匿名不具有构build权限而失败。 然后我切换到使用这个插件: https : //wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin
所以这个URL变成这样: https : //jenkinsserver.com/buildByToken/build?job=test&token=test
如果我通过浏览器(甚至隐身)而不是cURL POST到该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 …
我在这里错过了什么? 我甚至在正确的轨道上? 如果你是一个从Docker Hub webhook触发和Jenkins任务的人,你是怎么做到的?
作者的话说:这个插件的开发确实处于hibernate状态,但可以在任何时候复活,特别是在具体的使用情况下。 当DockerHub钩子被宣布时,我创build了这个插件作为一个PoC,但是没有具体的用法来做进一步的实验。 随意贡献,使插件可以支持自己的使用。
- 当使用jenkins在GitLabregistry中推送图像时,错误失败:存储库名称无效
- 在OpenShift / Minishift中部署Docker镜像时的权限问题
- 从Gitlab的私有Dockerregistry部署Docker镜像到Openshift
- 无法在Openshift Online中部署应用程序:“同步窗格:FailedSync错误”
- 无法将图像推送到Openshift(未经授权:需要validation)
- 如何在Openshift上运行Arangodb?
- 使用Dockerfile创buildOpenShift应用程序的问题(使用oc new-app)
- 如何同时运行2个SkyDns / Skydock环境?
- 如何在standalone.xml中注册keycloak模块(docker上的keycloak)