# ---------- Build Stage ---------- FROM alpine:latest AS build # Pakete installieren RUN apk add --no-cache build-base # Arbeitsverzeichnis setzen WORKDIR /app # alles kopieren COPY . . # Code kompilieren RUN gcc -o deployment deployment.c # ---------- Runtime Stage ---------- FROM alpine:latest # Arbeitsverzeichnis setzen WORKDIR /app # Benutzer ohne root-Rechte anlegen RUN adduser -D appuser # kompiliertes Programm kopieren COPY --from=build /app/deployment . # Verzeichnis für Ausgabe anlegen RUN mkdir /output && chown appuser /output # Datavolume definieren VOLUME ["/output"] # Benutzer wechseln USER appuser # HEALTHCHECK HEALTHCHECK CMD test -f /app/deployment || exit 1 # Ausgabe wird ins Datavolume geschrieben CMD ["sh", "-c", "./deployment 10 > /output/output.txt && tail -f /output/output.txt"]