# ---- Build stage ------------------------------------------------------------ FROM debian:bookworm-slim AS build RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential cmake pkg-config \ libcurl4-openssl-dev ca-certificates \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY CMakeLists.txt . COPY src ./src # Build RUN mkdir -p build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release && cmake --build . --config Release # ---- Runtime stage ---------------------------------------------------------- FROM debian:bookworm-slim # nur Runtime-Libs RUN apt-get update && apt-get install -y --no-install-recommends \ libcurl4 ca-certificates \ && rm -rf /var/lib/apt/lists/* # non-root User RUN useradd -r -u 10001 appuser WORKDIR /app COPY --from=build /app/build/ipv6_logger /app/ipv6_logger # Standard-Env (kannst du per Compose/CLI überschreiben) ENV URL="http://j-massing.de:19121/logs" \ INTERVAL="60" # Healthcheck: prüft IPv6-Erreichbarkeit von 1.1.1.1 (via curl connect-only) HEALTHCHECK --interval=60s --timeout=5s --start-period=10s --retries=3 \ CMD curl --connect-timeout 3 --silent --head http://1.1.1.1 || exit 1 USER appuser # Loggt Hostname beim Start und läuft als Daemon-Loop ENTRYPOINT ["/app/ipv6_logger"]