From 1ed3106b5f0688b7461c8058ab3e7be39c51fc0e Mon Sep 17 00:00:00 2001 From: Paolo Grommes Date: Fri, 15 May 2026 11:06:45 +0000 Subject: [PATCH] Dockerfile aktualisiert --- Dockerfile | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index d56241f..be5f24a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,35 @@ -# Base-Image -FROM ubuntu:latest AS build -# Pakete installieren -RUN apt-get update && apt-get install -y build-essential +FROM alpine:3.19 AS build + +RUN apk add --no-cache gcc musl-dev -# Arbeitsverzeichnis setzen WORKDIR /app - -# alles kopieren COPY . . +RUN gcc -o deployment deployment.c -# Code kompilieren -RUN gcc -o deployment deployment.c +# Final-Stage +FROM alpine:3.19 + + +RUN adduser -D -u 1000 appuser -FROM alpine:latest WORKDIR /app -# Verzeichnis für Ausgabe anlegen -RUN mkdir /output + + +RUN mkdir /output && chown appuser:appuser /output + COPY --from=build /app/deployment . -# Ausgabe wird ins Container-Dateisystem geschrieben -ENTRYPOINT ["/bin/sh", "-c"] -CMD ["./deployment 10 > /output/output.txt && tail -f /output/output.txt"] \ No newline at end of file +RUN chown appuser:appuser ./deployment + +# Volume deklarieren → Drone/Docker kann es mounten +VOLUME ["/output"] + +# Als non-root laufen +USER appuser + +# Healthcheck: prüft ob Output geschrieben wurde +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ + CMD test -f /output/output.txt || exit 1 + +CMD ["sh", "-c", "./deployment 10 > /output/output.txt"] \ No newline at end of file