# ETH.id - Zero-Knowledge Document Verification CLI
# Multi-stage build for optimized image size
FROM rust:1.75 as builder
WORKDIR /app
# Copy manifests
COPY Cargo.toml Cargo.lock ./
# Copy source code
COPY src ./src
COPY tests ./tests
COPY circuits ./circuits
COPY examples ./examples
# Build release binary
RUN cargo build --release --bin eth
# Runtime stage
FROM debian:bookworm-slim
# Install runtime dependencies
RUN apt-get update && apt-get install -y \
ca-certificates \
libssl3 \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy binary from builder
COPY --from=builder /app/target/release/eth /usr/local/bin/eth
# Copy example documents
COPY examples/sample_documents /app/examples/sample_documents
# Set environment variables
ENV RUST_LOG=info
# Create directory for ETH.id data
RUN mkdir -p /root/.eth-id/audit /root/.eth-id/attestations
# Verify installation
RUN eth --version || echo "ETH.id CLI installed"
# Default command shows help
CMD ["eth", "--help"]