41 lines
1.3 KiB
Docker
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"]
|