naksheap/deploy/Dockerfile
lakshit verma a48b163683
naksheap: reconstruct heap object graphs from core dumps
Rust workspace that turns a core dump of a stripped, optimized C/C++
binary into a typed heap object graph: objects, sizes, allocator state,
references, and probable struct layouts, all without debug info.

- glibc ptmalloc carving (main + thread arenas, tcache/fastbin freed
  state, mmap allocations), ELF core + memory-list minidump parsing
- pointer scan, layout clustering, vtable/string/vector detection,
  confidence + evidence on every node
- ASCII/JSON/Graphviz/HTML output, synthetic fixtures with ground truth,
  and real-dump validation harness (aarch64 glibc 2.39) in scripts/
- web deployment reference stack in deploy/

MIT OR Apache-2.0
2026-08-15 04:21:59 +05:30

22 lines
754 B
Docker

# Multi-stage: build the Rust binary, then a slim runtime image.
FROM rust:1.95 AS build
WORKDIR /src
COPY Cargo.toml Cargo.lock ./
COPY crates ./crates
RUN cargo build --release --workspace --locked
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends python3 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /srv
COPY --from=build /src/target/release/naksheap /usr/local/bin/naksheap
COPY deploy/server.py /srv/server.py
RUN useradd --create-home --uid 10001 --shell /usr/sbin/nologin naksheap \
&& mkdir -p /data && chown naksheap:naksheap /data
USER naksheap
ENV NAKSHEAP_BIN=naksheap \
NAKSHEAP_ARTIFACTS=/data \
NAKSHEAP_PORT=8080
EXPOSE 8080
VOLUME ["/data"]
ENTRYPOINT ["python3", "/srv/server.py"]