FROM docker.io/library/rust:1-trixie AS builder
WORKDIR /app/
COPY ./benches/ /app/benches/
COPY ./src/ /app/src/
COPY ./Cargo.toml /app/Cargo.toml
COPY ./Cargo.lock /app/Cargo.lock
COPY ./LICENSE /app/LICENSE
COPY ./README.md /app/README.md
ARG FEATURES="default"
RUN cargo build --features "${FEATURES}" --locked --release && \
cargo install \
--features "${FEATURES}" --locked \
--path . --root /app/ \
--bin rshs
FROM gcr.io/distroless/cc-debian13
COPY --from=builder /app/bin/rshs /usr/bin/rshs
COPY --from=builder /app/LICENSE /usr/share/doc/rshs/LICENSE
COPY --from=builder /app/README.md /usr/share/doc/rshs/README.md
WORKDIR /mnt/data/
ENV RSHS_ROOT_DIR=/mnt/data/
ENV RSHS_SHADOW_FILE=/etc/rshs/shadow:rw
ENV RSHS_LOG=info
EXPOSE 8080/tcp 8443/tcp
VOLUME /mnt/data/
ENTRYPOINT ["/usr/bin/rshs"]