İçeriğe geç

ASP.NET Core Uygulamasını Docker ile Containerize Edin ve Deploy Edin

25.06.2024 3,187 okunma

Docker ve ASP.NET Core

Docker, uygulamaları ve bağımlılıklarını izole konteynerlar içinde paketleyen açık kaynak bir platformdur. ASP.NET Core uygulamalarını Docker ile konteynerize etmek; "bende çalışıyor ama sunucuda çalışmıyor" sorununu ortadan kaldırır, deployment süreçlerini hızlandırır ve ölçeklemeyi kolaylaştırır. Microsoft, .NET 8 için optimized resmi Docker imajları sunar.

Dockerfile Oluşturma

# Build aşaması
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app
COPY *.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o out

# Runtime aşaması (daha küçük imaj)
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build /app/out .
EXPOSE 8080
ENTRYPOINT ["dotnet", "BenimUygulamam.dll"]

Docker Komutları

# İmaj oluşturma
docker build -t benim-uygulama .

# Konteyner çalıştırma
docker run -d -p 8080:8080 --name uygulama benim-uygulama

# Logları görüntüleme
docker logs uygulama

# Konteyner durdurma
docker stop uygulama

Docker Compose ile Çoklu Servis

services:
  web:
    build: .
    ports:
      - "8080:8080"
    depends_on:
      - db
    environment:
      - ConnectionStrings__Default=Server=db;Database=AppDb;User=sa;Password=Sifre123!

  db:
    image: mcr.microsoft.com/mssql/server:2022-latest
    environment:
      SA_PASSWORD: "Sifre123!"
      ACCEPT_EULA: "Y"

Azure Container Apps ile Cloud Deploy

Azure Container Apps, konteynerize ASP.NET Core uygulamalarını yönetilen ortamda serverless olarak çalıştırır. Azure Container Registry ile imaj depolanır; GitHub Actions CI/CD pipeline ile her commit sonrası otomatik deployment sağlanır.

Kubernetes ile Orkestrasyon

Büyük ölçekli deployment için Kubernetes (AKS — Azure Kubernetes Service) kullanılır. Deployment ve Service YAML dosyalarıyla replica sayısı, load balancing ve health check tanımlanır. Kubernetes; yatay ölçekleme, rolling update ve self-healing özellikleri sunar.

Bilkey ASP.NET ile Web Programlama Kursu

Bilkey Bilişim Akademisi ASP.NET ile Web Programlama Kursu'nda ASP.NET Core geliştirme, Docker, deployment ve modern web teknolojileri uygulamalı olarak öğretilmektedir. Kurtköy merkezimizde .NET geliştirici olun. 0216 354 7979

aspnet core docker dockerfile aspnet aspnet containerize docker compose aspnet dotnet deploy docker
C# ASP.NET Web Eğitimi hakkında bilgi almak ister misiniz?

Birebir özel yüz yüze eğitim yada uzaktan eğitim, esnek ders saatleri ile Pendik Kurtköy'de.