Saya baru-baru ini menghubungkan server CI kami untuk membangun gambar buruh pelabuhan saat git commit.
Kami memiliki sekitar 8 wadah berbeda yang dibangun, masing-masing dengan bahasa / kerangka kerja mereka sendiri. Beberapa node dan memiliki package.json, yang lain adalah layanan python yang tidak mengandung informasi versi semantik.
Pertanyaan saya bukan tentang cara membuat tag, ini tentang membuat nilai untuk tag.
Bagaimana memastikan bahwa setiap tag memiliki nomor versi semantik unik untuk gambar tertentu? Siapa yang seharusnya menjadi otoritas untuk melacak / menambah versi build?
docker
continuous-integration
versioning
Jack Murphy
sumber
sumber
Jawaban:
Saya akan mengarahkan Anda ke pos saya Coupling docker registry dan sumber kontrol tempat dmaze menjawab dari forum resmi . Docker.com . Cukup dengan hash dan nama cabang atau tag.
Kami saat ini menggunakan kombinasi nama cabang / komit hash. Bagi kami itu tampaknya sudah cukup. cap waktu sementara IMO berguna hanya menambahkan kekacauan karena mereka tidak memberikan apa pun yang hash komit tidak.
Saya setuju dengan 030 tentang:
100% adalah tanggung jawab CI untuk mempertahankan hal-hal seperti itu, dengan komunikasi yang baik antara tim lain.
sumber
Orang dapat membuat tag yang terdiri dari beberapa elemen, misalnya kombinasi timestamp, git commit hash dan versi semantik. Yang terakhir harus diatur secara manual, sedangkan dua yang pertama bisa otomatis. Tag seperti itu dapat terlihat sebagai berikut:
Tag ini berisi tanggal pembuatan, komit, dan versi semantik. Jika gambar buruh pelabuhan berjalan dalam produksi dan bug ditemukan maka orang tahu versi produk, kode yang ada di dalamnya dan kapan gambar itu dibuat dan dalam keadaan apa.
Menurut pendapat saya ini harus menjadi tanggung jawab CI karena ini dapat mengotomatiskan proses dan karena pembuatan tag dapat diotomatisasi alat seperti itu adalah alat yang tepat untuk pekerjaan itu.
sumber
Saya kira Anda menggunakan salah satu alat DevOps untuk CI / CD seperti Jenkins, saya sarankan pendekatan berikut,
Jika Anda menggunakan sesuatu seperti Jenkins-
ex:-
sudo docker build -t <image_name>:<BUILD_ID>
Jadi, jika Anda memiliki mekanisme seperti tag untuk SCM Anda, Anda dapat memeriksa tag di masing-masing ID build baik di build berbasis pekerjaan atau di config.xml ID build di JENKINS HOME_FOLDER.
sumber