# Multi-stage build for bascule-agent
# Stage 1: Build
FROM rust:latest AS builder

WORKDIR /build
COPY . .

ENV SQLX_OFFLINE=true
RUN cd services && cargo build --release -p bascule-agent

# Stage 2: Runtime
FROM debian:bookworm-slim

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

# Create substrate user and directories
RUN groupadd -r substrate && useradd -r -g substrate substrate && \
    mkdir -p /var/run/substrate /etc/substrate && \
    chown substrate:substrate /var/run/substrate

COPY --from=builder /build/services/target/release/bascule-agent /usr/local/bin/bascule-agent

# Default config
COPY services/bascule-agent/tests/e2e-config.toml /etc/substrate/shell.toml

USER substrate

EXPOSE 2222

ENTRYPOINT ["bascule-agent"]
CMD ["--config", "/etc/substrate/shell.toml"]
