diff --git a/Dockerfile b/Dockerfile index 2a7cc2a..4dfaeb5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,13 +16,15 @@ RUN cargo chef prepare --recipe-path recipe.json # Caching stage FROM chef AS cacher COPY --from=planner /app/recipe.json recipe.json -RUN --mount=type=cache,target=/usr/local/cargo/registry \ +RUN mkdir -p /app/target && \ + --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/app/target \ cargo chef cook --release --recipe-path recipe.json # Final Rust build stage FROM chef AS builder COPY . . +RUN mkdir -p target COPY --from=cacher /app/target target RUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/app/target \ @@ -35,11 +37,11 @@ WORKDIR /calcite-rs-jni # Install required packages RUN apt-get update && apt-get install -y \ maven \ - gradle \ python3 \ python3-venv \ python3-pip \ ca-certificates \ + git \ && rm -rf /var/lib/apt/lists/* # Copy project files @@ -55,6 +57,9 @@ COPY calcite-rs-jni/build.sh ./ # Make build script executable and run it with DOCKER_BUILD flag RUN chmod +x build.sh && \ + chmod +x calcite/gradlew +RUN --mount=type=cache,target=/root/.gradle \ + --mount=type=cache,target=/root/.m2 \ DOCKER_BUILD=1 ./build.sh # Runtime stage