FROM rust:1.95.0-trixie AS builder WORKDIR /build COPY Cargo.toml Cargo.lock* ./ COPY crates ./crates RUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/build/target \ cargo build --release -p rsh-backend && \ cp target/release/rsh-backend /usr/local/bin/rsh-backend FROM debian:bookworm-slim AS runtime RUN apt-get update && \ apt-get install -y --no-install-recommends ca-certificates tini && \ rm -rf /var/lib/apt/lists/* && \ useradd --system --uid 10001 --home /var/lib/rsh --create-home rsh COPY --from=builder /usr/local/bin/rsh-backend /usr/local/bin/rsh-backend ENV RSH_DATA=/var/lib/rsh \ RSH_BIND=0.0.0.0:7777 \ RSH_LOG=info USER 10001 EXPOSE 7777 VOLUME ["/var/lib/rsh"] ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/rsh-backend"]