Jenkins ile Docker İmajı Derlemek
Lab Çözümü
Benim çözümümü lab/Jenkinsfile dosyasında görebilirsiniz:
- latest etiketlerini derleyip gönderen yeni bir aşama ekliyor
- yeni aşamanın build adımında iki Compose komutu var: biri release
etiketlerini, diğeri latest etiketlerini derliyor
- ikinci aşamada da iki Compose komutu var: release etiketlerini ve latest
etiketlerini gönderiyor
İmajları yeniden derlemek israf gibi görünebilir, ama Docker'ın önbelleği yoğun biçimde kullandığını ve yeni build'lerin çok hızlı tamamlandığını göreceksiniz.
Alternatif olarak docker image tag komutuyla mevcut bir imaja yeni etiket
ekleyip onu gönderebilirsiniz, ama bunu Compose ile yapamazsınız; imaj
adlarını sabit yazmanız gerekir.
Buradaki yaklaşım, Compose dosyalarınıza yeni imajlar eklediğinizde de çalışmaya devam ediyor.
Bir latest imajı çekmeyi deneyin:
docker pull courselabs/rng-api:latestSonra inceleyebilirsiniz:
docker inspect courselabs/rng-api:latestEtiketlerin içinde build etiketini ve commit hash'ini göreceksiniz:
"Labels": {
"build_tag": "compose-7-origin/main",
"commit_sha": "e2ebdf2ca8bf55d5f38c1095ffcad55bc7866039"
}Build etiketi Jenkins job adını, build numarasını ve git branch'ini içeriyor
Alıştırmalara dönün.