# --- Stage 1: Build (Die Bau-Umgebung) ---
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
WORKDIR /app

# 1. Nur Projektdatei kopieren und Abhängigkeiten laden (Nutzt Docker-Caching)
COPY *.sln ./
COPY MyHelloWorld/*.csproj ./MyHelloWorld/
COPY MyHelloWorld.Tests/*.csproj ./MyHelloWorld.Tests/
RUN dotnet restore

# 2. Den restlichen Quellcode kopieren und die App kompilieren
COPY . ./
RUN dotnet publish MyHelloWorld/*.csproj -c Release -o out

# --- Stage 2: Runtime (Das fertige, schlanke Image) ---
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app

# 3. Den vorinstallierten User 'app' von Microsoft nutzen
USER app

# 4. Nur die fertigen Binärdateien aus der Bau-Umgebung rüberschieben
COPY --from=build-env /app/out .

# 5. Startbefehl festlegen
# WICHTIG: Falls deine DLL anders heißt (z.B. MyHelloWorld.dll), passe den Namen hier an!
ENTRYPOINT ["dotnet", "SecDevOpsLab.dll"]