macOS üzerinde .NET Geliştirme ortamı ile ilgili ilk bölümde Visual Studio for Mac ve .NET Core SDK kurulumlarından; ikinci bölümde ise container üzerinde Docker for Mac kurulumu, MSSQL ve Visual Studio Code’dan bahsetmiştik. Üçüncü bölümde ise Visual Studio for Mac ile bir ASP.NET Core uygulamasını container üzerine publish edip nasıl debug edilebildiğini inceleyeceğiz.
İlk olarak Visual Studio for Mac ile yeni bir ASP.NET Core Web App (MVC) projesi oluşturalım.
Resim-1
Configuration ekranında uygulamaya bir isim verdikten sonra (şu anda ihtiyaç olmadığından) herhangi bir version control seçmeden devam edebiliriz.
Resim-2
Create butonuna bastıktan sonra Resim-3‘te de göreceğiniz gibi yeni projemiz hazır.
Resim-3
Projeyi container üzerinde çalıştırmak için, öncelikle docker support eklememiz gerekiyor. Bunun için Resim-4‘te göreceğiniz şekilde projeye sağ tıklayıp Add Docker Support seçeneğini seçmeniz yeterli.
Resim-4
Projeye Dockerfile adında bir dosya ve solution altına docker-compose adında yeni bir proje eklendiğini görebilirsiniz (Resim-5 ve Resim-6).
Resim-5
Resim-6
Docker-compose projesini başlangıç projesi olarak ayarladıktan ya da direkt o projeyi çalıştırdıktan sonra container içerisinde AspNetCoreDockerDebug projesinin çalışmasını bekliyordum. Ancak işler pek de beklediğim gibi gitmedi. Resim-7‘da göreceğiniz gibi build işlemi aşağıdaki gibi bir hata verdi:
“Service ‘aspnetcoredockerdebug’ failed to build: manifest for microsoft/aspnetcore:2.1 not found”
Resim-7
Microsoft yaptığı küçük bir değişiklik ile base image ismini güncellemiş. Mevcuttaki Visual Studio for Mac template’leri bu kadar güncel olmadığı için Dockerfile üzerinde Resim-8‘de göreceğiniz gibi image ismini microsoft/dotnet:2.1-aspnetcore-runtime olarak güncelliyorum.
Resim-8
Bu güncellemeden sonra docker-compose projesini tekrar çalıştırdığımda ise farklı bir hata ile karşılaştım:
“Mounts denied: The path /usr/local/share/dotnet/sdk/NuGetFallbackFolder is not shared from OS X and is not known to Docker”
Resim-9
Bu hata mesajını düzeltmek için, bu kez de Docker ayarlarından File Sharing menüsüne geliyorum. Buraya erişim hatası aldığımız klasörü Resim-10‘da göreceğiniz şekilde ekliyorum ve Apply & Restart‘a basıyorum.
Resim-10
3. kez docker-compose projesini çalıştırdığımda proje başarılı bir şekilde derlendikten sonra default browser üzerinden uygulamamız açılıyor.
Resim-11
Terminal üzerinden de docker ps komutu ile ilgili container detaylarını görebilirsiniz (Resim-12).
Resim-12
Container ve uygulamanın çalıştığını gördükten sonra sıra debug işlemine geldi. HomeController.cs içerisinde About methoduna bir breakpoint koyduktan sonra, browser üzerinden About’a tıklayarak breakpoint’e düştüğünü görebilirsiniz.
Resim-13
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
TAGs: Visual Studio, Visual Studio for Mac, Docker, Docker for Mac, Container, ASP.NET, ASP.NET Core, .NET, Dockerfile, macOS