swicht from debian-slim to alpine because of CI Vulnerabilities

This commit is contained in:
Johannes Meyer 2026-04-11 19:55:18 +00:00
parent 7aed6a2669
commit db3dfa6b4e

View File

@ -3,12 +3,10 @@
# ============================================ # ============================================
# Build Stage # Build Stage
# ============================================ # ============================================
FROM debian:bookworm-slim AS build FROM alpine:3.20 AS build
# Nur die benötigten Pakete installieren und danach Metadaten löschen die man nur für die INstallation braucht # Nur die benötigten Pakete installieren mit --no-chache
RUN apt-get update \ RUN apk add --no-cache gcc musl-dev
&& apt-get install -y --no-install-recommends gcc libc6-dev \
&& rm -rf /var/lib/apt/lists/*
# WORKDIR setzen # WORKDIR setzen
WORKDIR /app WORKDIR /app
@ -22,18 +20,16 @@ RUN gcc -o deployment deployment.c
# ============================================ # ============================================
# Runtime Stage # Runtime Stage
# ============================================ # ============================================
FROM debian:bookworm-slim AS runtime FROM alpine:3.20 AS runtime
# Curl für den HEALTHCHECK # Curl für den HEALTHCHECK
RUN apt-get update \ RUN apk add --no-cache curl
&& apt-get install -y --no-install-recommends curl \
&& rm -rf /var/lib/apt/lists/*
# Das output directory erstellen # Das output directory erstellen
RUN mkdir -p /output RUN mkdir -p /output
# User ohne Root-Rechte erstellen # User ohne Root-Rechte erstellen
RUN useradd -m app RUN adduser -D app
# Der User app braucht die Rechte für den Ordner output # Der User app braucht die Rechte für den Ordner output
RUN chown -R app:app /output RUN chown -R app:app /output
@ -51,10 +47,11 @@ VOLUME ["/output"]
USER app USER app
# Programm starten # Programm starten
ENTRYPOINT ["/bin/bash", "-c"] ENTRYPOINT ["/bin/sh", "-c"]
CMD ["./deployment 10 > /output/output.txt && tail -f /output/output.txt"] CMD ["./deployment 10 > /output/output.txt && tail -f /output/output.txt"]
# prüfen ob output.txt existiert und aktualisiert wird # prüfen ob output.txt existiert und aktualisiert wird
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD test -f /output/output.txt && test $(find /output/output.txt -mmin -1) && echo "healthy" || exit 1 CMD [ -f /output/output.txt ] && \
[ $(find /output/output.txt -mmin -1 | wc -l) -gt 0 ] || exit 1