Neden Docker?
"Bende çalışıyor" sorununu ortadan kaldırır. Uygulama ve bağımlılıkları container içinde paketlenir, her ortamda aynı şekilde çalışır.
Dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 8080
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["MyApp.csproj", "."]
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=build /app/publish .
ENTRYPOINT ["dotnet", "MyApp.dll"]docker-compose.yml
version: "3.8"
services:
webapi:
build: .
ports:
- "5000:8080"
depends_on:
- sqlserver
environment:
- ConnectionStrings__Default=Server=sqlserver;Database=AppDb;User=sa;Password=Pass123!
sqlserver:
image: mcr.microsoft.com/mssql/server:2022-latest
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=Pass123!Komutlar
docker build -t myapp .
docker-compose up -d
docker logs myapp_webapi_1