diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 00000000..a4b8d0ed --- /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"]