32 lines
814 B
Docker
32 lines
814 B
Docker
# 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
|
|
|
|
# Volumes
|
|
VOLUME ["/app/persistence", "/app/wwwroot/downloads/sqlite"]
|
|
|
|
# Exponiere Port 80 und 443 (HTTP + HTTPS)
|
|
EXPOSE 80
|
|
EXPOSE 443
|
|
|
|
# Anwendung starten
|
|
ENTRYPOINT ["dotnet", "Watcher.dll"]
|