mirror of
https://github.com/docling-project/docling-serve.git
synced 2026-05-17 13:10:40 +00:00
fix: reduce memory usage with mimalloc (#512)
Signed-off-by: Michele Dolfi <dol@zurich.ibm.com>
This commit is contained in:
@@ -4,6 +4,31 @@ ARG UV_IMAGE=ghcr.io/astral-sh/uv:0.8.19
|
|||||||
|
|
||||||
ARG UV_SYNC_EXTRA_ARGS=""
|
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
|
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 && \
|
dnf -y clean all && \
|
||||||
rm -rf /var/cache/dnf
|
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
|
RUN /usr/bin/fix-permissions /opt/app-root/src/.cache
|
||||||
|
|
||||||
ENV TESSDATA_PREFIX=/usr/share/tesseract/tessdata/
|
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 \
|
--mount=type=bind,source=pyproject.toml,target=pyproject.toml \
|
||||||
umask 002 && uv sync --frozen --no-dev --all-extras ${UV_SYNC_EXTRA_ARGS}
|
umask 002 && uv sync --frozen --no-dev --all-extras ${UV_SYNC_EXTRA_ARGS}
|
||||||
|
|
||||||
|
ENV LD_PRELOAD=/usr/local/lib/libmimalloc.so
|
||||||
EXPOSE 5001
|
EXPOSE 5001
|
||||||
|
|
||||||
CMD ["docling-serve", "run"]
|
CMD ["docling-serve", "run"]
|
||||||
|
|||||||
Reference in New Issue
Block a user