From 79918c89151244860562afc9d13506d6adf9440f Mon Sep 17 00:00:00 2001 From: Martin Spitzer Date: Thu, 14 May 2026 14:15:03 +0000 Subject: [PATCH] Dockerfile aktualisiert --- Dockerfile | 40 +++++++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 526eea5..78a7238 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Base-Image FROM alpine:3.23 AS builder -# Pakete installieren +# Pakete installieren + Updates einspielen RUN apk upgrade --no-cache && apk add --no-cache gcc musl-dev # Arbeitsverzeichnis setzen @@ -11,11 +11,37 @@ WORKDIR /app COPY . . # Code kompilieren -RUN gcc -o deployment deployment.c +RUN gcc -O2 -o deployment deployment.c -# Verzeichnis für Ausgabe anlegen -RUN mkdir /output -# Ausgabe wird ins Container-Dateisystem geschrieben -ENTRYPOINT ["/bin/bash", "-c"] -CMD ["./deployment 10 > /output/output.txt && tail -f /output/output.txt"] \ No newline at end of file +# Base-Image +FROM alpine:3.23 + +# Sicherheitsupdates einspielen +RUN apk upgrade --no-cache + +# Arbeitsverzeichnis setzen +WORKDIR /app + +# kompiliertes Programm kopieren +COPY --from=builder /app/deployment /app/deployment + +# Verzeichnis für Ausgabe anlegen + User erstellen +RUN addgroup -S appuser \ +&& adduser -S appuser -G appuser \ +&& mkdir /output \ +&& chown -R appuser:appuser /app /output + +# Datavolume für Ausgabe +VOLUME ["/output"] + +# nicht als root laufen +USER appuser + +# Healthcheck +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ +CMD test -s /output/output.txt || exit 1 + +# Ausgabe wird ins Volume geschrieben +ENTRYPOINT ["/bin/sh", "-c"] +CMD ["./deployment 10 2>&1 | tee /output/output.txt"] \ No newline at end of file