Optimize Dockerfile

This commit is contained in:
Oliver Spies 2026-05-10 09:29:59 +00:00
parent 084f033c87
commit 68bdfc3a73

View File

@ -1,9 +1,8 @@
# Base-Image # ---------- Build Stage ----------
FROM ubuntu:latest FROM alpine:latest AS build
# Pakete installieren # Pakete installieren
RUN apt-get update RUN apk add --no-cache build-base
RUN apt-get install -y build-essential gcc curl vim net-tools
# Arbeitsverzeichnis setzen # Arbeitsverzeichnis setzen
WORKDIR /app WORKDIR /app
@ -14,9 +13,30 @@ COPY . .
# Code kompilieren # Code kompilieren
RUN gcc -o deployment deployment.c RUN gcc -o deployment deployment.c
# Verzeichnis für Ausgabe anlegen
RUN mkdir /output
# Ausgabe wird ins Container-Dateisystem geschrieben # ---------- Runtime Stage ----------
ENTRYPOINT ["/bin/bash", "-c"] FROM alpine:latest
CMD ["./deployment 10 > /output/output.txt && tail -f /output/output.txt"]
# 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"]