ARG RUST_IMAGE=rust:1-bookworm FROM --platform=$BUILDPLATFORM ${RUST_IMAGE} AS builder ARG RUST_TARGET=x86_64-unknown-linux-gnu ARG CARGO_REGISTRY=sparse+https://rsproxy.cn/index/ WORKDIR /app RUN mkdir -p /usr/local/cargo \ && printf '[source.crates-io]\nreplace-with = "mirror"\n\n[source.mirror]\nregistry = "%s"\n' "${CARGO_REGISTRY}" > /usr/local/cargo/config.toml RUN apt-get update \ && apt-get install -y --no-install-recommends \ ca-certificates \ gcc-aarch64-linux-gnu \ libc6-dev-arm64-cross \ && rm -rf /var/lib/apt/lists/* RUN rustup target add ${RUST_TARGET} ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc COPY Cargo.toml Cargo.lock ./ COPY src ./src RUN cargo build --release --target ${RUST_TARGET} \ && mkdir -p /out \ && cp target/${RUST_TARGET}/release/cdxs /out/cdxs