# Stufe 1: Build-Umgebung (SDK)
# Wir nutzen das SDK Image, um den Code zu kompilieren
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src

COPY ["../CouchLog/CouchLog.csproj", "."]
RUN dotnet restore "CouchLog.csproj"

# Kopiere den restlichen Source-Code
COPY ../CouchLog/ /src/

# Baue die Anwendung im Release-Modus
RUN dotnet build "CouchLog.csproj" -c Release -o /app/build

# Veröffentliche die Anwendung (Publish)
FROM build AS publish
RUN dotnet publish "CouchLog.csproj" -c Release -o /app/publish /p:UseAppHost=false

# Stufe 2: Runtime-Umgebung
# Das finale Image basiert auf dem schlanken ASP.NET Core Image
FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS final
WORKDIR /app
EXPOSE 8080
EXPOSE 8081

# Kopiere die fertigen Dateien aus der Build-Stufe
COPY --from=publish /app/publish .

# Startbefehl
ENTRYPOINT ["dotnet", "CouchLog.dll"]