# Base-Image FROM debian:bookworm-slim AS builder # Pakete installieren RUN apt-get update && apt-get install -y --no-install-recommends \ gcc \ libc6-dev \ && rm -rf /var/lib/apt/lists/* # Arbeitsverzeichnis setzen WORKDIR /app # alles kopieren COPY . . # Code kompilieren RUN gcc -O2 -o deployment deployment.c # Base-Image FROM debian:bookworm-slim # Pakete installieren RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # Arbeitsverzeichnis setzen WORKDIR /app # kompiliertes Programm kopieren COPY --from=builder /app/deployment /app/deployment # Verzeichnis für Ausgabe anlegen RUN mkdir /output \ && useradd -m appuser \ && chown -R appuser:appuser /app /output # Datavolume für Ausgabe VOLUME ["/output"] # nicht als root laufen USER appuser # Healthcheck 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 ["touch /output/output.txt && ./deployment 10 >> /output/output.txt & tail -f /output/output.txt"]