From df8aa888f96f7eac11dc76d798baa15b0f84ad53 Mon Sep 17 00:00:00 2001 From: Mohammad Dashti Date: Wed, 20 Sep 2023 10:29:30 -0700 Subject: [PATCH] Add a cache layer to Docker for development (#594) * Add a cache layer to Docker. * Created a separate `dev` Docker file. * Fixed `Docker.dev` to build in non-release mode. --- Dockerfile.dev | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Dockerfile.dev diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 0000000..a4b8d0e --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,25 @@ +FROM lukemathwalker/cargo-chef:latest-rust-1 AS chef + +RUN apt-get update && \ + apt-get install -y build-essential + +WORKDIR /app + +FROM chef AS planner +COPY . . +RUN cargo chef prepare --recipe-path recipe.json + +FROM chef AS builder +COPY --from=planner /app/recipe.json recipe.json +# Build dependencies - this is the caching Docker layer! +RUN cargo chef cook --release --recipe-path recipe.json +# Build application +COPY . . +RUN cargo build + +FROM debian:bookworm-slim +COPY --from=builder /app/target/release/pgcat /usr/bin/pgcat +COPY --from=builder /app/pgcat.toml /etc/pgcat/pgcat.toml +WORKDIR /etc/pgcat +ENV RUST_LOG=info +CMD ["pgcat"]