Estimated reading time: 7 minute(s)
Bu yazımda önceki yazılarda oluşturduğumuz projeyi Azure DevOps Pipelines üzerinde nasıl Dockerize edip, Docker Hub’a gönderebileceğimizi anlatmaya çalışacağım.
Bir önceki yazıya aşağıdaki bağlantıdan ulaşabilirsiniz.
Bir önceki yazıda oluşturduğumuz Dockerfile’ı Git reponuza göndermediyseniz lütfen gönderin. Son repo görüntüsü aşağıdaki gibi olmalıdır.
Pipelines->Builds/Pipelines menüsüne girin.
Önemli: “Builds menüsü Pipelines olarak değiştirildi.”
Azure Repos Git’i seçtiğinizde size hangi repository üzerinde çalışmak istediğinizi soracak, Sample Web Api’yi veya farklı bir isim oluşturduysanız onu seçerek devam edin.
Starter Pipeline’ı seçerek devam edin. Reponuzun ana dizinine azure-pipeline.yml (varsayılan) isminde bir dosya oluşacak.
Gelen sayfada Variables butonuna tıklayıp aşağıdaki gibi pipeline için 2 adet değer tanımlayın.
Name: dockerHub, Value: DockerHUB (Bir önceki yazıda oluşturduğunuz Docker Hub servis bağlantısı ismi.)
Name: imageName, Value: yildirimmehmet/sample-web-api (Bir önceki yazıda oluşturduğunuz Docker Hub Repository ismi)
YAML dosyası aşağıdaki gibi olmalıdır.
.yml dosyasında ne yapıyoruz?
1. Ubuntu makinesi ayağa kalkıyor.
2. Makineye Docker kuruluyor.
3. Docker Hub servisimizi belirtiyoruz. (dockerHub)
4. Docker Hub repository image ismini belirtiyoruz (imageName)
5. Git reposunu belirttiğimiz projedeki Dockerfile build ediliyor.
6. Docker Hub Repository’ye Build Number ve Latest etiketleriyle 2 adet image push ediliyor.
Variables’larımızı tamamladıktan sonra artık Save and run butonunu kullanarak pipeline’ımızı çalıştıralım.
Pipeline’ımız çalıştı ve başarıyla tamamlandı. Tüm aşamaları ve loglarını üzerine tıklayıp inceleyebilirsiniz.
Pipelines->Pipelines menüsüne girdiğinizde başarılı ve başarısız tüm derleme işlemlerinizi görüntüleyebilirsiniz.
Şimdi Docker Hub repomuzu kontrol edelim.
Resimde de görüldüğü gibi gönderdiğimiz 2 tag Docker Hub’a yüklenmiş.
Bir sonraki yazımda oluşturduğumuz Build’ın Release’ini oluşturup SSH bağlantı üzerinden Docker Image’ı yayınlamayı anlatacağım.