İlk bölümde Pulumi ile Azure üzerinde Container Registry oluşturmuştuk. Bu bölümde ise yeni bir kaynak oluşturmak yerine mevcut Container Registry üzerine yeni bir Docker container ekleyeceğiz. Container imajı oluşturma işlemini de PowerShell ya da komut satırı ile değil, Pulumi ile yapacağız.
Öncelikle Azure CLI üzerinden üzerinde çalışacağımız kaynağa ait Id bilgisine ihtiyacımız var. Bunun için az resource list komutu ile mevcut kaynakları listeleyip kullanacağımız kaynağa ait id değerini görebiliriz (Resim-1).
Resim-1
Kaynak koda bakacak olursak (Resim-2), yeni bir Registry objesi oluşturup RegistryArgs değerlerini mevcut kaynakta olduğu gibi belirtmemiz gerekiyor. Eğer bu değerleri boş geçerseniz pulumi up komutunu çalıştırdığınızda hangi değerlerin eksik olduğunu belirten bir uyarı mesajı verecek. Burada mevcut kaynağı kullanmak istememizi belirtmek için ise CustomResourceOptions objesi içerisinde yer alan ImportId değerin olarak, “az resource list” ile aldığımız değeri giriyorum (Resim-1).
Resim-2
Mevcut Container Registry’i kaynağını aldıktan sonra ise girişte de bahsettiğim gibi yeni bir container imajı oluşturacak kodu ekliyoruz. Burada Pulumi.Docker (1.1.0-preview) nuget paketini kurmak gerekiyor. Bu paket altında yer alan Image objesine Resim-2‘de göreceğiniz gibi ImageArgs değerlerini yazdıktan sonra, container imajını oluşturmak için gerekli Dockerfile dosyasının olduğu yeri (Build) belirtiyoruz.
Burada daha önceden oluşturulmuş bir proje kullanmak yerine; örnek bir proje oluşturma işlemi de Dockerfile içerisinde tanımlıyoruz. Güncel bir Ubuntu imajı kullanarak, .NET Core için gerekli paketleri kurduktan sonra .NET Core SDK (3.1) kurulumu ve son olarak da dotnet new mvc komutunu çalıştırarak örnek MVC uygulamamızı oluşturabiliriz (Resim-3).
Resim-3
Kod tarafında gerekli bütün hazırlıkları tamamladıktan sonra geriye sadece pulumi up komutunu çalıştırmak kalıyor. Resim-4′te göreceğiniz gibi stack adı girdikten sonra yapacağı işlemleri görebiliyoruz. Azure Container Registry için “create” yerine “import” işlemi yapacağını görerek de mevcut kaynağı kullandığını teyit edebiliriz.
Resim-4
Sonrasında Azure Portal üzerinden Container Registry/Repositories üzerinde yeni oluşturduğumuz container imajını görebiliriz (Resim-5).
Resim-5
Pulumi üzerinde de benzer şekilde yaptığımız işlemin detaylarını görebiliyoruz (Resim-6).
Resim-6
Eğer kaynaklarınızı bağımlılıkları ile grafik şekilde görmek isterseniz de Resources’ı açabilirsiniz (Resim-7).
Resim-7
Projede yer alan kodlara buradan ulaşabilirsiniz.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
https://docs.microsoft.com/en-gb/azure/container-registry/
https://github.com/mshowto/Pulumi/tree/master/pulumi-acr
TAGs: Azure, Azure Portal, Yazılım Geliştiriciler için Azure, Azure Container Registry, ACR, PowerShell, Azure CLI, Containers, .NET, .NET Core, Pulumi, Infrastructure as Code, Docker, Dockerfile, .NET Core, Ubuntu