swactor/tests/docker/Dockerfile.datastream
Zachery Aaron Shores-Chmielewski 52394a8e2d refactor(distribution): prune diagnostics subsystem
Strip the collector/aggregator/postproc/snapshot, vastai sampler+shipper,
host/iroh/subprocess/swim introspection, relay observability, sink/spool, and the diag
binaries; drop the t_diag_* tests. Remove DiagEvent emission from iroh_driver. Add
datastream emit/wire (mux + NoopSink/UdpFrameSink/ClusterFrameSink) and rewire the
dashboard onto datastream_source.


Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-06-06 21:53:25 +04:00

39 lines
1.9 KiB
Text

# Datastream demo image (multi-stage, self-contained).
#
# The production image (../../Dockerfile) is `FROM scratch` over a static musl
# binary. This demo image instead compiles the binaries *inside* Docker and
# runs them on a slim glibc base. Building in the same Debian release as the
# runtime keeps glibc versions matched, so the image is portable regardless of
# the host's glibc — and you don't need a Rust toolchain on the host at all.
#
# Build context is the repo root (see docker-compose.datastream.yml). A
# sibling Dockerfile.datastream.dockerignore keeps the build context to the
# source tree (excludes target/, .git/).
FROM rust:1-bookworm AS builder
WORKDIR /src
COPY . .
RUN cargo build --release -p node \
--bin swactor --bin swactor-datastream-collector \
&& cargo build --release -p distribution --features relay \
--bin swactor-iroh-relay \
&& cargo build --release -p dashboard \
--bin swactor-datastream-dashboard
FROM debian:bookworm-slim
# ca-certificates is handy for iroh's default relays; harmless otherwise.
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=builder /src/target/release/swactor /usr/local/bin/swactor
COPY --from=builder /src/target/release/swactor-datastream-collector /usr/local/bin/swactor-datastream-collector
COPY --from=builder /src/target/release/swactor-iroh-relay /usr/local/bin/swactor-iroh-relay
COPY --from=builder /src/target/release/swactor-datastream-dashboard /usr/local/bin/swactor-datastream-dashboard
# Bake the demo config and the fixed seed identity into the image so the
# cluster is fully self-contained — no bind mounts (which are fragile across
# daemon configurations). The seed identity is a throwaway demo key.
COPY tests/docker/datastream-node.toml /etc/swactor/node.toml
COPY tests/docker/identities/seed /seed-identity
ENTRYPOINT ["swactor"]