From 23e44dc29fbbea202c561a96b3c7d3e5fdd286bb Mon Sep 17 00:00:00 2001 From: "Achim H." Date: Wed, 6 May 2026 12:39:16 +0200 Subject: [PATCH] added Dockerfile and Kaniko Build Stage --- Dockerfile | 22 ++++++++++++++++++++++ Jenkinsfile | 12 ++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6a78737 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +# --- Stage 1: Build (Die Bau-Umgebung) --- +FROM ://microsoft.com AS build-env +WORKDIR /app + +# 1. Nur Projektdatei kopieren und Abhängigkeiten laden (Nutzt Docker-Caching) +COPY *.csproj ./ +RUN dotnet restore + +# 2. Den restlichen Quellcode kopieren und die App kompilieren +COPY . ./ +RUN dotnet publish -c Release -o out + +# --- Stage 2: Runtime (Das fertige, schlanke Image) --- +FROM ://microsoft.com +WORKDIR /app + +# 3. Nur die fertigen Binärdateien aus der Bau-Umgebung rüberschieben +COPY --from=build-env /app/out . + +# 4. Startbefehl festlegen +# WICHTIG: Falls deine DLL anders heißt (z.B. MyHelloWorld.dll), passe den Namen hier an! +ENTRYPOINT ["dotnet", "SecDevOpsLab.dll"] \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index 7add8a9..0823cc4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -72,6 +72,18 @@ pipeline { } } + stage('Docker Build (Kaniko)') { + steps { + container('kaniko') { + // Wir bauen das Image lokal im Pod-Speicher + // --context `pwd`: Wo liegt dein Code? (Hier!) + // --dockerfile: Wo liegt das Dockerfile? + // --no-push: Nur bauen, noch nicht hochladen + sh '/kaniko/executor --context `pwd` --dockerfile `pwd`/Dockerfile --no-push' + } + } + } + stage('Set Build Name') { steps { script {