from mcluseau/rust:1.88.0 as build

workdir /app
copy . .
run \
    --mount=type=cache,id=rust-alpine-registry,target=/usr/local/cargo/registry \
    --mount=type=cache,id=rust-alpine-target,sharing=private,target=/app/target \
    cargo build --release \
 && mkdir -p /dist \
 && find target/release -maxdepth 1 -type f -executable -exec cp -v {} /dist/ +

# ------------------------------------------------------------------------
from alpine:3.22
copy --from=build /dist/ /bin/

