giriiş Web geliştiricileri olarak, uygulamalarımızın dağıtımı ve bakımının tüm zorluklarıyla birlikte uygun barındırmayı bulurduk. Ancak artık bulut sağlayıcılarının bizim için pek çok şeyi neredeyse hiçbir ücret ödemeden yapabileceği yeni bir çağda yaşıyoruz. .NET geliştiricilerine gelince, Microsoft Azure, web uygulamalarını barındırmak için en doğal seçenek gibi görünüyor. Docker, uygulamanızı çalıştırdığınız platform ve ortamdan soyutlama yapmanızı mümkün kılan başka bir teknoloji parçasıdır. Bu yazımda basit bir ASP.NET Core web uygulamasının nasıl oluşturulacağı, uygulamanız ile docker imajının nasıl oluşturulacağı ve bunu Azure’a dağıtmanın en kolay yolu hakkında detaylı bir rehber vereceğim. Sonunda web uygulamanızı nasıl dağıtacağınızı ve onu tüm dünya için erişilebilir hale getireceğinizi iyi anlayacaksınız. 1. ASP.NET Core Web Uygulaması Oluşturun Bu makaledeki geliştirme amacıyla JetBrains Rider'ı kullanacağım. Ancak istediğiniz herhangi bir aracı kullanabilirsiniz. Öncelikle yeni bir proje oluşturmanız gerekiyor. Buna basit ' ' diyelim. webapp Yeni bir proje oluşturduktan sonra şöyle görünmelidir: 2. Docker Görüntüsü Oluşturun Projede herhangi bir değişiklik yapmadan odaklanacağız. Aşağıdaki örnek gibi değiştirin: Dockerfile FROM mcr.microsoft.com/dotnet/aspnet:6.0 as base WORKDIR /app EXPOSE 8080 ENV ASPNETCORE_URLS http://+:8080 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build COPY . /src WORKDIR /src RUN dotnet build "webapp.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "webapp.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "webapp.dll"] Docker konteynerine HTTP üzerinden bağlanabilmek için ve satırlarına dikkat etmeniz gerekmektedir. EXPOSE 8080 ENV ASPNETCORE_URLS http://+:8080 Komut satırından bir liman işçisi görüntüsü oluşturun. proje dizinine gitmeniz ve aşağıdaki komutu uygulamanız gerekir: webapp DOCKER_BUILDKIT=1 docker buildx build --platform linux/amd64 --tag drmoz/webapp:latest . Bunu Mac M1'de çalıştırıyorum ve Azure dağıtımıyla uyumlu olması için parametresini açıkça belirtmem gerekiyor. Ayrıca başka bir mimari için görüntü oluşturabilmek için parametresini belirterek ve kullanarak Docker Buildkit'i etkinleştirmem gerekiyor. --platform DOCKER_BUILDKIT=1 buildx Intel x86/x64 platformunda çalıştırıyorsanız parametresini belirtmenize ve etkinleştirmenize gerek kalmadan komutunu kullanabilirsiniz. --platform buildx docker build Görselinizi farklı şekilde etiketleyebilirsiniz ancak Docker Hub kullanacağım için görsel etiketinin bir parçası olarak hesap adımı: belirtmem gerekiyor. drmoz/webapp:latest drmoz Bir görüntü oluşturulduğunda, aşağıdaki komutu çalıştırarak Docker'da mevcut olup olmadığını kontrol edebilirsiniz: docker images Listede olmalı: REPOSITORY TAG IMAGE ID CREATED SIZE drmoz/webapp latest 0cfac748256b 37 minutes ago 216MB Yeni oluşturulan görüntünün düzgün çalıştığını doğrulamak için docker konteynerini çalıştıralım. Bir kapsayıcıyı başlatmak için komutunu yürütün: docker run docker run -p 5555:8080 drmoz/webapp:latest Kapsayıcının içindeki bağlantı noktasını yerel makinenizin bağlantı noktasına eşlemek için parametresini belirtin. Ayrıca kapsayıcıyı oluşturmak için görüntü adını da belirtin. Benim durumumda bu . 8080 5555 -p drmoz/webapp:latest Artık ASP.NET Core Web App ana sayfasını görmek için tarayıcınızda gezinebilirsiniz. http://localhost:5555 bir imaj göndermemiz gerekiyor. Bundan önce Docker Registry'ye kaydolmalı ve bir depo oluşturmalısınız. Ana sayfanın sağ köşesindeki ' ' butonuna tıklayın. Docker Hub'a Depo oluştur alanını belirtin ve depo görünürlüğünü koruyun. Repository Name Public Komut satırında Docker Hub kayıt defterinde oturum açmanız gerekir: docker login Bundan sonra, yeni oluşturulan bir görüntüyü kayıt defterine gönderebileceksiniz: docker push drmoz/webapp:latest Depoya gidin; resimle ilgili bilgileri göreceksiniz: 3. Azure'da bir Web Uygulaması oluşturun Artık ASP.NET Core Web Uygulamamızı Azure’a dağıtmaya hazırız. Azure Portal'da oturum açalım ve yeni bir kaynak grubu oluşturalım. Kaynak Grubu adını ' ' olarak belirtin ve 'İncele + oluştur' düğmesini tıklayın. webapp-rg Bir sonraki ekranda 'Oluştur' düğmesine basmanız yeterlidir. Artık bir Web Uygulaması oluşturabiliriz. 'Kaynak oluştur' sayfasına gidin ve WebApp'i bulun. 'Oluştur' düğmesini tıklayın. Daha önce oluşturduğumuz belirtmeniz gerekiyor. Ayrıca Web Uygulaması için benzersiz bir belirtin. alanında 'Docker Container'ı seçin. Daha sonra hangi Docker imajının kullanılacağını belirtebileceğiz. Resource Group Name Publish bölümünde uygun seçeneklerden herhangi birini seçin, ancak test amacıyla lastiği kullanmanızı öneririm. Docker sekmesine gidin. Pricing plans Ücretsiz F1 Bu sekmede alanında 'Docker Hub'ı seçin. alanında 'Public' seçeneğini seçin ve Docker Hub'a aktardığımız görüntünün adını içeren değerini belirtin. 'İncele + oluştur' sekmesine gidin. Bu sekmede 'Oluştur' düğmesini tıklayın: Image Source Access Type Image and tag Yeni kaynak dağıtıldığında size bu kaynağa gitmek isteyip istemediğiniz sorulacaktır; sadece yap. Web Uygulamasına ilişkin bilgileri görebileceksiniz. Dağıtılmış bir web uygulamasını açmak için 'Gözat' düğmesine tıklayın. Her şey doğru giderse, adresine giderek tarayıcınızda gördüğünüze benzer ASP.NET Core Web App ana sayfasını görmelisiniz. http://localhost:5555 Sürekli Dağıtımı Etkinleştir 'Dağıtım Merkezi' ayarlarına giderseniz ve 'Dağıtım devam ediyor'u etkinleştirirseniz, Docker Hub'a her yeni bir görüntü gönderdiğinizde görüntünüzü yeniden dağıtabilirsiniz. Bu sayede kodunuzda değişiklik yapabilir, onu yeni bir imajla Docker Hub’a gönderebilir ve değişiklikleri dakikalar içinde Azure’da görebilirsiniz. Azure Web Uygulamasında Sorun Giderme Dağıtım günlüklerini görebilmek ve sorunları tanımlayabilmek için 'Uygulama Hizmeti günlükleri' bölümü altında günlüklerin dosya sistemine kaydedilmesini aşağıdaki şekilde etkinleştirmeniz gerekir: İşlem tamamlandığında 'Dağıtım Merkezi'ne gidebilir ve günlükleri aşağıdaki gibi görebilirsiniz: Özet Bu noktaya ulaştıysanız ASP.NET Core web uygulaması oluşturmayı başardınız demektir; bunu Docker görüntüsüne paketleyin ve Azure'a dağıtın. Günümüzde teknoloji hayatı kolaylaştırmakta ve gelişim sürecini hızlandırmaktadır. Uygulamanızı bulut sağlayıcıya ne kadar kolay dağıtıp tüm dünyaya sunabileceğinizi görebilir, bazı testler gerçekleştirebilir ve çalışmanızın sonucunu görebilirsiniz. Artık Microsoft kullanarak Azure bulut sağlayıcılarının ayrıntılarına inebilirsiniz. Ayrıca bu teknolojiyi daha iyi anlamak için Docker bakın. Umarım faydalı olabilir. belgelerini belgelerine