# 1. Build-Phase: SDK-Image
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /app

# Projektdateien kopieren und Abhängigkeiten wiederherstellen
COPY *.sln .
COPY Watcher/*.csproj ./Watcher/
RUN dotnet restore

# Restliche Dateien kopieren und Build ausführen
COPY Watcher/. ./Watcher/
WORKDIR /app/Watcher
RUN dotnet publish -c Release -o /app/publish /p:UseAppHost=false

# 2. Laufzeit-Phase: ASP.NET Core Runtime
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build /app/publish .

# Stelle sicher, dass Verzeichnisse existieren
RUN mkdir -p /app/persistence /app/wwwroot/downloads/sqlite /app/logs

# Volumes
VOLUME ["/app/persistence", "/app/wwwroot/downloads/sqlite"]

# Expose Port 80 und 443 (HTTP + HTTPS)
EXPOSE 80
EXPOSE 443

# Anwendung starten
ENTRYPOINT ["dotnet", "Watcher.dll"]
