From 66c426f4d89fd27bea13f39633cb0df9884f40e4 Mon Sep 17 00:00:00 2001 From: Andro Chilab Date: Sat, 11 Apr 2026 12:05:20 +0000 Subject: [PATCH] Dockerfile aktualisiert --- Dockerfile | 49 +++++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6624be1..79955ca 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,38 +1,47 @@ -# Base-Image - Alpine statt Ubuntu -FROM alpine:latest AS build +# Base-Image +FROM alpine:3.22 AS builder -# Build-Tools installieren -RUN apk add --no-cache gcc musl-dev +# Pakete installieren + Updates einspielen +RUN apk upgrade --no-cache && apk add --no-cache gcc musl-dev # Arbeitsverzeichnis setzen WORKDIR /app -# Code kopieren und kompilieren -COPY deployment.c . -RUN gcc -o deployment deployment.c +# alles kopieren +COPY . . -# Finales schlankes Image -FROM alpine:latest +# Code kompilieren +RUN gcc -O2 -o deployment deployment.c -# Nicht als root laufen -RUN adduser -D appuser +# Base-Image +FROM alpine:3.22 + +# Sicherheitsupdates einspielen +RUN apk upgrade --no-cache + +# Arbeitsverzeichnis setzen WORKDIR /app -# Nur das Binary kopieren -COPY --from=build /app/deployment . +# kompiliertes Programm kopieren +COPY --from=builder /app/deployment /app/deployment -# Ausgabeverzeichnis anlegen und Rechte setzen -RUN mkdir /output && chown appuser /output +# Verzeichnis für Ausgabe anlegen + User erstellen +RUN addgroup -S appuser \ + && adduser -S appuser -G appuser \ + && mkdir /output \ + && chown -R appuser:appuser /app /output -# Volume für Ausgabe -VOLUME /output +# Datavolume für Ausgabe +VOLUME ["/output"] -# User wechseln +# nicht als root laufen USER appuser # Healthcheck -HEALTHCHECK --interval=30s --timeout=5s CMD pgrep deployment || exit 1 +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 > /output/output.txt && tail -f /output/output.txt"] \ No newline at end of file +CMD ["touch /output/output.txt && ./deployment 10 >> /output/output.txt & tail -f /output/output.txt"] \ No newline at end of file