2015-01-12 11 views
6

Es scheint eine Menge Beispiele zu geben, um GitHub abzufragen, aber wie kann ich Docker Hub abfragen und einen darauf basierenden Build auslösen?Wie kommuniziere ich von Docker Hub über Web-Hook zu Jenkins?

Ich habe einen Webhook in Docker Hub für meinen automatisierten Build eingerichtet, aber ich kann nicht sehen, wie man dafür in Jenkins abstimmt.

Es scheint dieser Jenkins Plugin zu sein: https://wiki.jenkins-ci.org/display/JENKINS/DockerHub+Plugin

Aber, wie ich es verstehe das Plugin, da eine API Änderung auf Docker Hub gebrochen wurde.

Update:

Es scheint, dass die Antwort der Trigger-Builds Remotely Option unter Übersetzungs zu verwenden ist Auslöser aber es aufgrund anonymen nicht mit nicht bauen Berechtigungen. Dann wechselte ich dieses Plugin verwenden: https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin

So lautet die URL etwas wie folgt aus: https://jenkinsserver.com/buildByToken/build?job=test&token=test

Das funktioniert, wenn ich über einen Browser auf diese URL POST (auch inkognito), aber nicht mit kräuseln. Ich bekomme:

$ 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> 

aber ich kann es über cURL zu arbeiten, wenn ich dies tun:

Aber Docker Hub nicht, dass die URL nicht mag ... enter image description here

Was fehlt mir hier? Bin ich überhaupt auf dem richtigen Weg? Wenn Sie jemand sind, der die Jenkins-Aufgabe von einem Docker Hub-Webhook löst, wie machen Sie das?

+0

Haben Sie [die Jenkins-REST-API-Dokumentation] (https://wiki.jenkin-ci.org/display/JENKINS/Remote+access+API) gelesen, einschließlich der Informationen zur Authentifizierung als bestimmter Jenkins-Benutzer? Wenn die Probleme nur das Anfrageformat sind und nicht authentifiziert werden, befinden sich alle Antworten auf dieser Seite. –

+0

Ich glaube, dass ich danach alles richtig mache. Es scheint, als ob der Docker-Hub nur eine URL unterstützt, die Jenkins versteht und die Anmeldeinformationen enthält. Muss ich Build-Berechtigungen nur für anonyme Benutzer erteilen? – Carter

+0

Ich bezweifle es. Ich sehe nicht, dass Sie die Option --user von curl verwenden, wie eines der Beispiele (der Dateiparameter eins). Benutzt du es? –

Antwort

0

Worte des Autors: Entwicklung in diesem Plugin ist zwar ruhend, kann aber jederzeit wieder auferstehen, vor allem mit einem konkreten Anwendungsfall. Ich habe dieses Plugin als PoC erstellt, als DockerHub Hook angekündigt wurde, aber ich nutze es nicht, um es weiter zu experimentieren. Fühlen Sie sich frei zu beitragen, so dass das Plugin Ihre eigene Verwendung unterstützen kann.