# Diagnostics-enabled image for the docker-compose e2e harness. # # Bundles four binaries: # # - pp-gpu-node (stage) # - pp-smoke-run (orchestrator; for convenience / docker exec) # - swactor-diag-collector (collector service) # - swactor-diag-postproc (post-processor, runnable via docker exec) # # All four share one image so the e2e harness only builds + ships one # tag. The build context must be the workspace root because the COPY # paths reach into both `target/release/` (for the distribution-crate # binaries) and `examples/pipeline-parallel-inference/target/release/` # (for the pp binaries): # # docker build -f examples/pipeline-parallel-inference/Dockerfile.diag \ # -t pp-diag:latest . # # The host must build all four binaries first — this image only # packages them. `scripts/docker-diag-e2e.sh` automates the full # build + run. FROM debian:bookworm-slim RUN apt-get update && \ apt-get install -y --no-install-recommends \ python3 \ ca-certificates \ curl && \ rm -rf /var/lib/apt/lists/* COPY examples/pipeline-parallel-inference/target/release/pp-gpu-node /usr/local/bin/pp-gpu-node COPY examples/pipeline-parallel-inference/target/release/pp-smoke-run /usr/local/bin/pp-smoke-run COPY target/release/swactor-diag-collector /usr/local/bin/swactor-diag-collector COPY target/release/swactor-diag-postproc /usr/local/bin/swactor-diag-postproc COPY examples/pipeline-parallel-inference/pp_tinygrad_worker.py /usr/local/share/pp_tinygrad_worker.py ENV WORKER_SCRIPT=/usr/local/share/pp_tinygrad_worker.py ENV PP_WORKER_STUB=1 CMD ["pp-gpu-node"]