swactor/examples/pipeline-parallel-inference/Dockerfile.diag

42 lines
1.6 KiB
Text
Raw Normal View History

# 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"]