diff --git a/Dockerfile b/Dockerfile index a5cdf64..ec2ff65 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,8 @@ # Base-Image -FROM ubuntu:latest +FROM alpine:latest -# Pakete installieren -RUN apt-get update -RUN apt-get install -y build-essential gcc curl vim net-tools +# Pakete installieren (alpine nutzt apk anstelle von apt-get!) +RUN apk update && apk add --no-cache build-base gcc curl vim net-tools # Arbeitsverzeichnis setzen WORKDIR /app @@ -17,6 +16,21 @@ RUN gcc -o deployment deployment.c # Verzeichnis für Ausgabe anlegen RUN mkdir /output +# Neuen nicht root-user anlegen und diesem die Rechte +# fuer die Arbeitsverzeichnisse geben +RUN addgroup -S newgroup && adduser -S newuser -G newgroup +RUN chown -R newuser:newgroup /app /output +# Benutzer wechseln +USER newuser + +# Mount-Punkt fuer Laufzeit festlegen +VOLUME /output + +# Healthcheck anlegen +# - prueft alle 10s ob die Datei output.txt erfolgreich erstellt wurde +# - wenn 'test -f' fehlschlaegt, wird der Container als 'unhealthy' markiert +HEALTHCHECK --interval=10s --timeout=3s CMD test -f /output/output.txt || exit 1 + # Ausgabe wird ins Container-Dateisystem geschrieben -ENTRYPOINT ["/bin/bash", "-c"] -CMD ["./deployment 10 > /output/output.txt && tail -f /output/output.txt"] \ No newline at end of file +ENTRYPOINT ["/bin/sh", "-c"] +CMD ["./deployment 10 > /output/output.txt && tail -f /output/output.txt"]