2014-10-20 27 views
6

Docker kullanarak sürekli bir dağıtım stratejisi yapıyorum. Kodum Github'da barındırılıyor ve Docker kayıt defteri gitmeye bastığımda otomatik bir yapı başlatıyor. Varsayılan ayar, master'a bastığımda oluşturmaya başlamak ve "en son" etiketli bir görüntü oluşturmaktır. Bu iyi, ama aynı zamanda git taahhütlerini etiketlemek ve buna dayalı bir görüntü oluşturmak istiyorum. Docker kayıt defteri sitesinde, Otomatik Yapı Oluşturma ayarlarını düzenleme sayfasında bazı işlevler var gibi görünüyor. Tür için "etiket" i seçebiliyorum ve bir statik etiket adı sağlayabiliyorum.Genel Kayıt Defterindeki bir git etiketine dayanan Docker görüntüsünü nasıl oluşturabilirim?

Docker etiketi adı Git etiketi adıyla aynı olabilir mi?

Amaç, belirli sürümleri etiketleyebilmeniz için sürüm geçmişi bulunabilmektir.

+0

Bu soru hakkında herhangi bir geri bildiriminiz var mı? – Luc

cevap

2

Bunu, "Otomatik Yapılandırma" ayarlarınızın altında Docker kayıt defterinde yapabilirsiniz. Varsayılan olarak, bu, "ana" branşınıza dayalı olarak "en son" olarak adlandırılan bir yapı oluşturur, ancak belirli git etiketleri için otomatik yapıları da ekleyebilirsiniz. Aşağıdaki resim ben aynı sorunu var

+4

Doğru, ancak kodlanmış adlar içeren etiketler oluşturmak yerine, herhangi bir etiketi itme - etiketler 'edebilmek ve bir Docker resim etiketi olarak gösterilmesini istiyorum. – remmelt

0

ilgili ekranı gösterir ve bu eklentiyi kullanarak bu dizildi ettik:

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

Bu çok güzel bir çözüm değildir ama o kadar, çalışır:

1) Yürütme kabuk: echo TAG=${GIT_BRANCH#*/} > docker_tag

2) enjekte Çevre değişkenleri Özellikler Dosya Yolu:

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

verir: docker_tag

3) komut satırından https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Build+and+Publish+plugin

2

En basit çözüm üzerinde ${TAG} kullanmak yuvalanmış git-rev komuttur sen mesela

<image> = myImage >> myImage:67df348