# zakuro-ai/broker - Zakuro Compute Broker
#
# Routes compute requests to workers with credit-based billing.
#
# Build: docker build -t zakuro-ai/broker .
# Run: docker run -p 9000:9000 -e ZAKURO_API_KEY=demo zakuro-ai/broker
FROM rust:1.75-slim AS builder
RUN apt-get update && apt-get install -y --no-install-recommends \
pkg-config \
libssl-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /build
COPY . .
RUN cargo build --release
# -------------------------------------------------------------------
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
ca-certificates \
iproute2 \
&& rm -rf /var/lib/apt/lists/*
# Copy binary
COPY --from=builder /build/target/release/zc /usr/local/bin/zc
# Environment
ENV ZAKURO_API_KEY=""
ENV ZAKURO_MASTER_KEY=""
ENV REDIS_URL="redis://redis:6379"
# Ports: 9000 = broker API
EXPOSE 9000
# Health check
HEALTHCHECK --interval=10s --timeout=5s --retries=3 \
CMD curl -f http://localhost:9000/health || exit 1
ENTRYPOINT ["/usr/local/bin/zc"]
CMD ["broker"]