Kể từ Docker Hub does not expose any API, cách duy nhất để gửi nội dung đến Trung tâm Docker từ xa là với lệnh docker push
và điều này giới hạn việc sử dụng để gửi hình ảnh. Mặt khác, nếu bạn để dịch vụ Docker Hub xây dựng hình ảnh cho bạn từ kho lưu trữ Github hoặc Bitbucket, thì Docker Hub sẽ cập nhật mô tả dài bằng cách lấy nội dung của tệp README.md
được tìm thấy trên kho lưu trữ đó. Xem phần Understand the build process từ tài liệu Tự động xây dựng của Docker Hub.
Điều này ngụ ý rằng bạn lưu trữ các tệp Dockerfile và README.md của mình trên Github hoặc Bitbucket.
Nếu bạn thực sự cần phải đầu tiên xây dựng hình ảnh của bạn trên TravisCI (có lẽ bởi vì bạn cũng chạy thử nghiệm tự động vào hình ảnh được xây dựng), sau đó bạn có thể có TravisCI kích hoạt một webhook trên Docker Hub nói Docker Hub để xây dựng hình ảnh một khi TravisCI xác định nó đã vượt qua các bài kiểm tra.
Để làm như vậy, trong Docker Hub, cấu hình hình ảnh của bạn như bạn sẽ cho tự động xây dựng (do đó kết hợp một dự án Github hoặc Bitbucket), nhưng tắt tính năng tự động:
Sau đó, cuộn xuống trên trang Cài đặt bản dựng tới phần Trình kích hoạt xây dựng và sao chép URL trình kích hoạt:
Bây giờ sửa .travis của bạn.yml tập tin và thêm khối sau (nhớ những <your account>
và <your image>
placeholders):
after_success:
# notify Docker Hub to make a new build
- >
[ "$TRAVIS_BRANCH" == "master" ]
&& curl -X POST -H "Content-Type: application/json"
--data '{"docker_tag_name": "latest"}'
https://registry.hub.docker.com/u/<your account>/<your image>/trigger/$DOCKER_HUB_TOKEN/
Sau đó đi đến trang dự án của bạn trên trang web Travis CI, và mở các thiết lập dự án:
Và thêm biến môi trường DOCKER_HUB_TOKEN
vào dự án Travis CI của bạn với giá trị mã thông báo kích hoạt được tìm thấy trên trang Docker Hub Build Settings:
Bạn vẫn sẽ cần một kho Github hoặc Bitbucket liên quan đến dự án Docker Hub của bạn, nhưng Travis CI sẽ là một hướng dẫn Docker Hub khi xây dựng hình ảnh của bạn.
Có, tôi biết về Bản dựng tự động, nhưng tôi muốn sử dụng Travis CI, để tôi cũng có thể thực hiện một loạt các bài kiểm tra. Có cách nào khác hay tôi chỉ nên viết một kịch bản hoạt động như một trình duyệt và thay đổi mô tả trên trang Docker Hub? – NEO
@NEO Điều đó có thể được thực hiện, việc thiết lập phức tạp hơn nhưng tôi sẽ cố gắng giải thích rõ ràng → trả lời đã chỉnh sửa – Thomasleveil
Đây là một ý tưởng hay. Nhưng tôi nên làm gì nếu tôi muốn kích hoạt nhiều bản dựng? Bây giờ, tôi đang sử dụng tính năng xây dựng ma trận của Travis CI để xây dựng nhiều hình ảnh bằng cách chỉ thay đổi một số biến env. Có thể kích hoạt các bản dựng cho mỗi hàng của ma trận không? – NEO