# First transient image to build compute_tools binaries # NB: keep in sync with rust image version in .github/workflows/build_and_test.yml FROM neondatabase/rust:1.58 AS rust-build # Enable https://github.com/paritytech/cachepot to cache Rust crates' compilation results in Docker builds. # Set up cachepot to use an AWS S3 bucket for cache results, to reuse it between `docker build` invocations. # cachepot falls back to local filesystem if S3 is misconfigured, not failing the build. ARG RUSTC_WRAPPER=cachepot ARG CACHEPOT_BUCKET=zenith-rust-cachepot ARG AWS_ACCESS_KEY_ID ARG AWS_SECRET_ACCESS_KEY COPY . . RUN set -e \ && sudo -E "PATH=$PATH" mold -run cargo build -p compute_tools --release \ && cachepot -s # Final image that only has one binary FROM debian:buster-slim COPY --from=rust-build /home/runner/target/release/compute_ctl /usr/local/bin/compute_ctl