mirror of
https://github.com/neondatabase/neon.git
synced 2025-12-27 16:12:56 +00:00
30 lines
1015 B
Docker
30 lines
1015 B
Docker
# 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=rust
|
|
ARG TAG=pinned
|
|
|
|
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
|
|
|
|
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
|