diff --git a/Dockerfile b/Dockerfile index 2dad8f5..cc0490d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,40 +1,30 @@ FROM alpine:latest -# Nur notwendige Build-Tools installieren + sofort aufräumen RUN apk add --no-cache build-base && \ rm -rf /var/cache/apk/* -# Non-root User + Gruppe anlegen (hohe UID/GID für bessere Security) RUN addgroup -S -g 10001 appgroup && \ adduser -S -u 10001 -G appgroup -h /app -s /bin/sh appuser WORKDIR /app -# Quellcode als root kopieren (COPY --chown funktioniert zuverlässig) COPY --chown=appuser:appgroup . . -# Als non-root User kompilieren USER appuser RUN gcc -o deployment deployment.c -O2 -static # -static macht das Binary robuster -# ← WICHTIG: Hier wieder zurück zu root, um /output zu erstellen + chown USER root -# Ausgabe-Verzeichnis als root anlegen und dem appuser geben RUN mkdir -p /output && \ chown -R appuser:appgroup /output && \ chmod 755 /output -# HEALTHCHECK (läuft als root – das ist bei HEALTHCHECK erlaubt und empfohlen) HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD pgrep -x deployment > /dev/null || exit 1 -# Volume deklarieren (wird beim Start mit -v gemountet) VOLUME ["/output"] -# Endgültig als non-root User starten USER appuser -# Startbefehl ENTRYPOINT ["/bin/sh", "-c"] CMD ["./deployment 10 > /output/output.txt 2>&1 && exec tail -f /output/output.txt"] \ No newline at end of file