2014-10-20 18 views
6

Tôi đang xây dựng một chiến lược triển khai liên tục bằng cách sử dụng Docker. Mã của tôi được lưu trữ trên Github và đăng ký Docker bắt đầu xây dựng tự động khi tôi chuyển sang git. Cài đặt mặc định là bắt đầu xây dựng khi tôi đẩy để làm chủ và tạo hình ảnh bằng thẻ "mới nhất". Điều này là tốt, nhưng tôi cũng muốn có thể gắn thẻ cam kết trong git và tạo một hình ảnh dựa trên đó. Dường như có một số chức năng cho điều đó trên trang đăng ký Docker, trên trang Chỉnh sửa Cài đặt Tự động Xây dựng, tôi có thể chọn "thẻ" cho loại và cung cấp tên thẻ tĩnh.Làm cách nào để tạo hình ảnh Docker dựa trên thẻ git trong Registry công cộng?

Làm thế nào tôi có thể có tên thẻ Docker được giống như tên thẻ Git?

Mục đích là để có thể gắn thẻ các phiên bản cụ thể để có một lịch sử phiên bản.

+0

Mọi phản hồi về câu hỏi đó? – Luc

Trả lời

2

Bạn có thể làm điều này trong registry Docker, dưới cài đặt "tự động xây dựng" của bạn. Theo mặc định, điều này tạo một bản dựng được gọi là "mới nhất" dựa trên nhánh "chính" của bạn, nhưng bạn cũng có thể thêm các bản dựng tự động cho các thẻ git cụ thể. Các hình ảnh dưới đây cho thấy các màn hình có liên quan

+4

Đúng vậy, nhưng thay vì tạo thẻ với tên mã cứng, tôi muốn để có thể cho 'git push --tags' bất kỳ thẻ và có nó xuất hiện như một thẻ hình ảnh Docker là tốt. – remmelt

0

Tôi đã có cùng một vấn đề và tôi đã sắp xếp này ra bằng cách sử dụng plugin này:

https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin

Đây không phải là giải pháp rất đẹp nhưng nó hoạt động, vì vậy:

1) Thực hiện shell: echo TAG=${GIT_BRANCH#*/} > docker_tag

2) Tiêm biến Môi trường Thuộc tính File Path: docker_tag

3) sử dụng ${TAG} trên https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Build+and+Publish+plugin

2

giải pháp đơn giản nhất từ ​​dòng lệnh là một lồng lệnh git-rev:

docker tag <image> <image>:$(git rev-parse --short HEAD)" 

cho bạn ví dụ

<image> = myImage >> myImage:67df348 
Các vấn đề liên quan