Files
wifi-densepose/vendor/ruvector/tests/integration/distributed/Dockerfile

54 lines
1.2 KiB
Docker

# Ruvector Distributed Node Dockerfile
FROM rust:1.87-slim-bookworm AS builder
# Install build dependencies
RUN apt-get update && apt-get install -y \
pkg-config \
libssl-dev \
curl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy workspace files
COPY Cargo.toml Cargo.lock ./
COPY crates/ ./crates/
COPY examples/ ./examples/
# Build release binaries
RUN cargo build --release -p ruvector-raft -p ruvector-cluster -p ruvector-replication
# Runtime stage
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y \
ca-certificates \
curl \
netcat-openbsd \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy built binaries
COPY --from=builder /app/target/release/libruvector_raft.rlib ./
COPY --from=builder /app/target/release/libruvector_cluster.rlib ./
COPY --from=builder /app/target/release/libruvector_replication.rlib ./
# Copy the node runner script
COPY tests/integration/distributed/node_runner.sh ./
RUN chmod +x node_runner.sh
# Environment variables
ENV NODE_ID=""
ENV NODE_ROLE="follower"
ENV RAFT_PORT=7000
ENV CLUSTER_PORT=8000
ENV REPLICATION_PORT=9000
ENV CLUSTER_MEMBERS=""
ENV SHARD_COUNT=64
ENV REPLICATION_FACTOR=3
EXPOSE 7000 8000 9000
CMD ["./node_runner.sh"]