From 1667bdfafc6caf6200c086758a598d50d675d49b Mon Sep 17 00:00:00 2001 From: Michele Dolfi <97102151+dolfim-ibm@users.noreply.github.com> Date: Tue, 24 Feb 2026 10:48:32 +0100 Subject: [PATCH] fix: reduce memory usage with mimalloc (#512) Signed-off-by: Michele Dolfi --- Containerfile | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Containerfile b/Containerfile index 3e0d59f..86dab2c 100644 --- a/Containerfile +++ b/Containerfile @@ -4,6 +4,31 @@ ARG UV_IMAGE=ghcr.io/astral-sh/uv:0.8.19 ARG UV_SYNC_EXTRA_ARGS="" +ARG MIMALLOC_VERSION=v3.2.8 + + +################################################################################################### +# Build mimalloc # +################################################################################################### + +FROM ${BASE_IMAGE} AS mimalloc + +ARG MIMALLOC_VERSION + +USER 0 + +RUN dnf install -y --best --nodocs --setopt=install_weak_deps=False gcc gcc-c++ make cmake git + +RUN git clone --depth 1 --branch ${MIMALLOC_VERSION} https://github.com/microsoft/mimalloc.git /opt/app-root/src/mimalloc + +WORKDIR /opt/app-root/src/mimalloc + +RUN mkdir -p out/release + +WORKDIR /opt/app-root/src/mimalloc/out/release +RUN cmake ../.. && make + + FROM ${BASE_IMAGE} AS docling-base ################################################################################################### @@ -21,6 +46,7 @@ RUN --mount=type=bind,source=os-packages.txt,target=/tmp/os-packages.txt \ dnf -y clean all && \ rm -rf /var/cache/dnf +COPY --from=mimalloc /opt/app-root/src/mimalloc/out/release/libmimalloc.so /usr/local/lib/libmimalloc.so RUN /usr/bin/fix-permissions /opt/app-root/src/.cache ENV TESSDATA_PREFIX=/usr/share/tesseract/tessdata/ @@ -75,6 +101,7 @@ RUN --mount=from=uv_stage,source=/uv,target=/bin/uv \ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ umask 002 && uv sync --frozen --no-dev --all-extras ${UV_SYNC_EXTRA_ARGS} +ENV LD_PRELOAD=/usr/local/lib/libmimalloc.so EXPOSE 5001 CMD ["docling-serve", "run"]