Azure DevOps Pipelines: Docker Image’ı SSH ile Yayınlama

Estimated reading time: 10 minute(s)

Bu yazımda bir önceki yazıda oluşturduğumuz Docker Hub üzerindeki image’ı SSH bağlantısı ile sunucu üzerinde yayınlamayı anlatacağım. Bir önceki yazıma aşağıdan ulaşabilirsiniz.


İlk iş, DockerHUB bağlantısını yaptığımız gibi SSH servisinide pipeline’ımıza bağlamamız gerekiyor.

Project Settings->Pipelines->Service Connections üzerinden New service connection’a tıklayıp SSH’ı seçin.

Çıkan form üzerinde SSH bağlantı bilgilerinizi girin, server üzerinde oluşturacağınız private key dosyasını yükleyerekte bağlantıyı kurabilirsiniz. OK’a tıklayıp bağlantı işlemini tamamlayın.

Aşağıda göreceğiniz üzere mevcut servis bağlantılarımıza SSH servisi geldi.


Azure DevOps hesabınıza girin ve Pipelines->Releases menüsüne gidin. New Pipeline butonuna tıklayın.

Bu aşamada bize bir çok hazır template sunuluyor. IIS sunucu üzerine bir deployment yapacaksanız direk olarak IIS website deployment’ı seçerek devam edebilirsiniz. Biz sıfırdan bir template oluşturacağız, bunun için Empty Job diyerek devam edin.

Release işleminde artık uygulamamızı Production moda alacağımız için senaryomuzda Stage name olarak Production yazıyoruz. ve Save diyerek devam ediyoruz.

Üst tarafta bulunan New release pipeline yazısına tıklayarak Pipeline’ınızın ismini de dilerseniz değiştirebilirsiniz.

Pipeline’ın hangi dizinde oluşmasını belirtmemiz gerekiyor, varsayılan olarak ana dizin kullanılır, OK diyerek devam edebilirsiniz.

Gelen ekranda source type olarak Build’i seçin. Projenizi seçtikten sonra bir önceki yazı ile oluşturduğunuz Build Pipeline Source’unuzu seçip Add butonuyla işlemi tamamlayın.

Save butonunu kullanarak release pipeline’ınızı kaydedin.

Aşağıdaki resimde işaretlenen 1 job, 0 task linkine tıklayın.

Agent job üzerindeki +’ya tıklayın ve Add butonunu kullanarak SSH task’ini ekleyin.

Açılan ekran üzerinde Display name’e Task’inize vermek istediğiniz ismi girin, SSH service connection olarak biraz önce oluşturduğunuz SSH servis bağlantısını seçin. Inline Script’e aşağıda bulunan kodu girin. Script ne yapıyor;

1. Konsolu uyut.
2. Sunucu şifresini gir. (Eğer makineniz SSH sonrası şifre istemiyorsa 1–2 adımları kaldırıp kendinize göre düzenleyebilirsiniz)
3. Aktif çalışan eski versiyon bir Image varsa durdur.
4. Tüm ilgili container’ları temizle.
5. Production environment’ı ile ilgili Build number tag’iyle 8080 portu üzerinden uygulamayı yayınla.

Kaydettiğinizde artık 1 task’in eklendiğini göreceksiniz.

Sunucunuz üzerinde aşağıdaki komutu kullanarak docker hesabınıza giriş yapın.

docker login –username=yildirimmehmet

Pipelines->Releases->Create a release butonunu kullanarak yeni bir release oluşturun.

Kaydettiğinizde release listesinde görüntülenecektir.

Release-1 üzerine tıkladığınızda Not Deployed durumda olduğunu göreceksiniz. Deploy linkine tıklayın ve Deploy butonunu kullanarak release’inizi çalıştırın.

Not deployed durumu aşağıda göreceğiniz üzere In progress duruma geçti. Azure DevOps üyelik planınıza göre bekleme süreniz değişiklik gösterebilir. Ücretsiz plan kullanıyorsanız yoğunluğa göre değişir. Job kullanım bilgilerinizi görmek için Organization Settings-> Pipelines -> Parallel Jobs menüsünü kullanabilirsiniz.

Job kuyruğa eklendi.
Job başarıyla tamamlandı.

Sunucumuzda aşağıdaki gibi 8989 portunda WeatherForecast’e gittiğimizde uygulamamıza ulaşabiliyoruz.

Okuduğunuz için teşekkürler, bir sonraki yazım CI-CD süreçleri, Triggers ve Agents konuları hakkında olacak.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir