# ── Build stage ───────────────────────────────────────────────────── FROM debian:bookworm AS builder RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential cmake libmicrohttpd-dev \ && rm -rf /var/lib/apt/lists/* COPY . /src RUN cmake -S /src -B /build \ -DCMAKE_BUILD_TYPE=Release \ && cmake --build /build -j"$(nproc)" # ── Runtime stage ──────────────────────────────────────────────────── FROM debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends \ libmicrohttpd12 \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /build/framecache /usr/local/bin/framecache COPY --from=builder /build/fc_pipe /usr/local/bin/fc_pipe COPY --from=builder /build/net_ingest /usr/local/bin/net_ingest COPY --from=builder /build/fc_test_consumer /usr/local/bin/fc_test_consumer 2>/dev/null || true # /dev/shm/framecache is created at runtime (tmpfs) RUN mkdir -p /dev/shm/framecache EXPOSE 7435 HEALTHCHECK --interval=10s --timeout=3s --start-period=5s \ CMD wget -qO- http://localhost:7435/health || exit 1 CMD ["/usr/local/bin/framecache"]