diff --git a/apps/swh-graph/Dockerfile b/apps/swh-graph/Dockerfile
index 5d974bdf9a5f9268f2922300c3d49e10ec65b5ce..9477b2549c2fd17733eec2e9d56c975bcd326853 100644
--- a/apps/swh-graph/Dockerfile
+++ b/apps/swh-graph/Dockerfile
@@ -1,14 +1,27 @@
-# Deeply inspired from the Dockerfile of the swh-graphql project
-FROM rust:1.80-bookworm
+FROM rust:1.80-bookworm AS rust_build
+# ... build swh-graph rust deps
+RUN apt-get -y update && \
+    apt-get -y upgrade && \
+    apt-get install -y build-essential libclang-dev \
+    zstd protobuf-compiler default-jre && \
+    apt clean
+
+# Install swh-graph feature swh-graph-grpc-serve
+# TODO: Ensure the target-cpu is ok
+RUN RUSTFLAGS="-C target-cpu=native" \
+  cargo install \
+    --features grpc-server \
+    swh-graph
+
+FROM python:3.10-bookworm
+
 ARG UID=1000
 ARG GID=1000
 
 RUN apt-get -y update && \
     apt-get -y upgrade && \
-    apt-get install -y python3 python3-pip \
-      libcmph-dev librdkafka-dev \
-      build-essential libclang-dev \
-      zstd protobuf-compiler default-jre && \
+    apt-get install -y python3-pip \
+      libcmph-dev librdkafka-dev && \
     apt clean && \
     addgroup --gid $UID swh && \
     useradd --gid $GID --uid $UID -m -d /opt/swh swh && \
@@ -25,13 +38,7 @@ ENV PATH=/opt/swh/.local/bin:$PATH
 RUN /usr/bin/python3 -m pip install --upgrade pip --break-system-packages && \
     pip install --no-cache-dir -r requirements-frozen.txt --break-system-packages
 
-# Install
-
-RUN RUSTFLAGS="-C target-cpu=native" \
-  cargo install \
-    --features grpc-server \
-    swh-graph
-
+COPY --from=rust_build /usr/local/cargo/bin/swh-graph-* /usr/local/bin/
 ENV SWH_CONFIG_FILENAME=/etc/swh/config.yml
 ENV PORT 5009
 EXPOSE $PORT