2015-01-12 23 views
6

Dường như có rất nhiều ví dụ để thăm dò GitHub nhưng làm cách nào tôi có thể thăm dò ý kiến ​​của Docker Hub và kích hoạt một bản dựng dựa trên đó?Làm cách nào để liên lạc từ Docker Hub với Jenkins qua web hook?

Tôi đã thiết lập webhook trong Trung tâm Docker cho bản dựng tự động của mình nhưng tôi không thể xem cách thăm dò ý kiến ​​cho nó trong Jenkins.

Có vẻ là plugin này Jenkins: https://wiki.jenkins-ci.org/display/JENKINS/DockerHub+Plugin

Nhưng, như tôi hiểu nó plugin đã bị phá vỡ kể từ khi một sự thay đổi API trên Docker Hub.

Cập nhật:

Dường như câu trả lời là sử dụng kích hoạt được xây dựng từ xa tùy chọn dưới Build Kích hoạt tuy nhiên nó không thành công do nặc danh không có xây dựng cho phép. Sau đó, tôi chuyển sang sử dụng plugin này: https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin

Vì vậy, các URL trở nên một cái gì đó như thế này: https://jenkinsserver.com/buildByToken/build?job=test&token=test

đó làm việc nếu tôi POST để URL mà thông qua một trình duyệt (thậm chí ẩn danh) nhưng không phải với cURL. Tôi nhận được:

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

Tuy nhiên, tôi có thể lấy nó để làm việc qua cURL nếu tôi làm điều này:

Nhưng, Docker Hub không thích URL mà ... enter image description here

Tôi đang thiếu gì ở đây? Tôi có đi đúng đường không? Nếu bạn là một người kích hoạt và Jenkins nhiệm vụ từ một Huber Docker Hub, làm thế nào để bạn làm điều đó?

+0

Bạn đã đọc [tài liệu API REST Jenkins] (https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API), bao gồm các bit về cách xác thực là người dùng Jenkins cụ thể chưa? Nếu vấn đề chỉ là định dạng yêu cầu và không xác thực thì tất cả các câu trả lời đều nằm trên trang đó. –

+0

Tôi tin rằng tôi đang làm mọi thứ đúng theo điều đó. Dường như docker hub không hỗ trợ một URL mà Jenkins hiểu rằng bao gồm thông tin đăng nhập. Tôi có phải cấp quyền xây dựng cho ẩn danh không? – Carter

+0

Tôi nghi ngờ điều đó. Tôi không thấy bạn sử dụng tùy chọn --user của curl, giống như một trong các ví dụ (tham số tệp). Bạn đang sử dụng nó? –

Trả lời

0

Từ tác giả: phát triển trong plugin này thực sự là không hoạt động, nhưng có thể hồi sinh bất cứ lúc nào, đặc biệt là với trường hợp sử dụng cụ thể. Tôi tạo ra plugin này như là một PoC khi DockerHub móc đã được công bố, nhưng không có một cách sử dụng cụ thể của nó để thử nghiệm hơn nữa. Vui lòng đóng góp để plugin có thể hỗ trợ việc sử dụng của riêng bạn.

Các vấn đề liên quan