# First transient image to build compute_tools binaries # NB: keep in sync with rust image version in .github/workflows/build_and_test.yml ARG REPOSITORY=neondatabase ARG IMAGE=build-tools ARG TAG=pinned ARG BUILD_TAG FROM $REPOSITORY/$IMAGE:$TAG AS rust-build WORKDIR /home/nonroot # 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 ENV AWS_REGION=eu-central-1 ENV CACHEPOT_S3_KEY_PREFIX=cachepot ARG CACHEPOT_BUCKET=neon-github-dev #ARG AWS_ACCESS_KEY_ID #ARG AWS_SECRET_ACCESS_KEY ARG BUILD_TAG ENV BUILD_TAG=$BUILD_TAG COPY . . RUN set -e \ && mold -run cargo build -p compute_tools --locked --release \ && cachepot -s # Final image that only has one binary FROM debian:bullseye-slim COPY --from=rust-build /home/nonroot/target/release/compute_ctl /usr/local/bin/compute_ctl