#schlankes Base-Images FROM alpine:3.19 AS builder # Nur das nötigste RUN apk add --no-cache gcc musl-dev WORKDIR /app COPY deployment.c . RUN gcc -o deployment deployment.c -static # Nicht-root User anlegen RUN addgroup -S appgroup && adduser -S appuser -G appgroup # Ausgabe-Verzeichnis anlegen und Rechte setzen RUN mkdir /output && chown appuser:appgroup /output WORKDIR /app # Nur das Binary aus dem Build-Stage kopieren COPY --from=builder /app/deployment . RUN chown appuser:appgroup /app/deployment # Volume für die Ausgabe VOLUME /output # Als nicht-root User laufen USER appuser # Healthcheck: prüft ob das Binary vorhanden und ausführbar ist HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \ CMD test -x /app/deployment || exit 1 ENTRYPOINT ["/app/deployment"] CMD ["10"]