ipv6client/Dockerfile

41 lines
1.3 KiB
Docker

# ---- 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/ipv6client /app/ipv6client
# 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/ipv6client"]