FROM rust:1.90-bookworm AS builder
WORKDIR /src
COPY Cargo.toml Cargo.lock ./
COPY crates ./crates
COPY docs/openapi.json ./docs/openapi.json
RUN cargo build --release --locked -p oa-server

FROM debian:bookworm-slim
RUN groupadd --gid 10001 arcadia \
    && useradd --uid 10001 --gid 10001 --no-create-home --home-dir /data arcadia \
    && mkdir /data \
    && chown 10001:10001 /data
COPY --from=builder /src/target/release/arcadia-server /usr/local/bin/arcadia-server
USER 10001:10001
VOLUME ["/data"]
EXPOSE 8787
ENTRYPOINT ["/usr/local/bin/arcadia-server"]
CMD ["--bind", "0.0.0.0:8787", "--data-dir", "/data", "--token-file", "/run/secrets/arcadia-token"]
