7

GitHub をポーリングする例はたくさんあるようですが、Docker Hub をポーリングしてそれに基づいてビルドをトリガーするにはどうすればよいですか?

自動ビルド用に Docker Hub に 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

ブラウザを介して(シークレットでも)そのURLにPOSTすると機能しますが、cURLでは機能しません。私は得る:

$ 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 タスクをトリガーする場合、どのようにしますか?

4

2 に答える 2

0

著者からの言葉: このプラグインの開発は確かに休眠状態ですが、特に具体的なユースケースでは、いつでも復活する可能性があります。DockerHub フックが発表されたときに、このプラグインを PoC として作成しましたが、さらに実験するための具体的な使用法はありません。プラグインが独自の使用法をサポートできるように、気軽に貢献してください。

于 2015-03-19T04:33:50.143 に答える