updated documentation in Dockerfile und Jenkinsfile and updated to --template "html"
This commit is contained in:
29
Dockerfile
29
Dockerfile
@@ -1,36 +1,37 @@
|
||||
# --- Stage 1: Build (Die Bau-Umgebung) ---
|
||||
# Basis Image das für die Build Umgebung verwendet wird
|
||||
FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build-env
|
||||
# Wechseln ins Arbeitsverzeichnis
|
||||
WORKDIR /app
|
||||
|
||||
# 1. Nur Projektdatei kopieren und Abhängigkeiten laden (Nutzt Docker-Caching)
|
||||
# Kopieren der Projektdatei in Arbeitsverzeichnis
|
||||
COPY *.csproj ./
|
||||
#COPY *.sln ./
|
||||
#COPY MyHelloWorld/*.csproj ./MyHelloWorld/
|
||||
#COPY MyHelloWorld.Tests/*.csproj ./MyHelloWorld.Tests/
|
||||
# Laden der Abhängigkeiten
|
||||
RUN dotnet restore
|
||||
|
||||
# 2. Den restlichen Quellcode kopieren und die App kompilieren
|
||||
# Kopieren des restlichen Quellcodes
|
||||
COPY . ./
|
||||
#RUN dotnet publish MyHelloWorld/*.csproj -c Release -o out
|
||||
# Kompilieren eds Quellcodes (Projektdatei muss nicht zwingend angegeben werden)
|
||||
RUN dotnet publish "SecDevOpsLab.csproj" -c Release -o out
|
||||
|
||||
# --- Stage 2: Runtime (Das fertige, schlanke Image) ---
|
||||
# Noch schlangere Basis Image für die Runtime Umgebung
|
||||
FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine
|
||||
# Wechseln ins Arbeitsverzeichnis
|
||||
WORKDIR /app
|
||||
|
||||
# 3. Port für die Web-App öffnen (Standard bei .NET 8 Web-Apps ist 8080)
|
||||
# Öffnen des Ports für die Web-App (Standard bei .NET 8 Web-Apps ist 8080)
|
||||
EXPOSE 8080
|
||||
# Konfigurieren des integrierten Kestrel-Webserver einer ASP.NET Core App
|
||||
ENV ASPNETCORE_URLS=http://+:8080
|
||||
|
||||
# 3. Den vorinstallierten User 'app' von Microsoft nutzen
|
||||
# Erlaube dem User 'app' in das Verzeichnis zu schreiben (für SQLite)
|
||||
# Wechseln auf root (nur kurz)
|
||||
USER root
|
||||
# Ändern des File Owner (wichtig dass die Sqlite DB geschrieben werden kann)
|
||||
RUN mkdir -p /app/data && chown -R app:app /app/data && chmod -R 775 /app/data
|
||||
# Wechsel auf non-root User (app ist ein vorinstallierter User von Microsoft)
|
||||
USER app
|
||||
|
||||
# 4. Nur die fertigen Binärdateien aus der Bau-Umgebung rüberschieben
|
||||
# Kopieren der fertigen Binärdateien aus der Build Umgebung
|
||||
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!
|
||||
# Festlegen des Start Befehls
|
||||
ENTRYPOINT ["dotnet", "SecDevOpsLab.dll"]
|
||||
Reference in New Issue
Block a user