ecash-server 0.1.0

REST API server for eCash blind signature protocol
FROM rust:1.91-slim AS builder

WORKDIR /app

RUN apt-get update && apt-get install -y \
    pkg-config \
    libssl-dev \
    && rm -rf /var/lib/apt/lists/*

COPY Cargo.toml Cargo.lock ./
COPY crates/ecash-core ./crates/ecash-core
COPY crates/ecash-server ./crates/ecash-server

RUN cargo build --release -p ecash-server

FROM debian:bookworm-slim

RUN apt-get update && apt-get install -y \
    ca-certificates \
    libssl3 \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY --from=builder /app/target/release/ecash-server /usr/local/bin/ecash-server

RUN useradd -m -u 1000 ecash && \
    chown -R ecash:ecash /app

USER ecash

EXPOSE 8080

CMD ["ecash-server"]