From 67bc1403a8f66aa08f991d416461cbcb79eb05f4 Mon Sep 17 00:00:00 2001 From: erwinkersten Date: Tue, 8 Sep 2026 15:05:52 +0200 Subject: [PATCH] fix(docker): move base image off EOL bullseye --- Dockerfile | 5 ++-- packages/markitdown-mcp/Dockerfile | 25 +++++++++---------- .../src/markitdown_mcp/__main__.py | 5 ++++ 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index c65bf9c641..ddda6c7dd1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,14 @@ -FROM python:3.13-slim-bullseye +FROM python:3.13-slim-trixie ENV DEBIAN_FRONTEND=noninteractive ENV EXIFTOOL_PATH=/usr/bin/exiftool ENV FFMPEG_PATH=/usr/bin/ffmpeg +ENV ORT_DISABLE_TELEMETRY=1 # Runtime dependency RUN apt-get update && apt-get install -y --no-install-recommends \ ffmpeg \ - exiftool + libimage-exiftool-perl ARG INSTALL_GIT=false RUN if [ "$INSTALL_GIT" = "true" ]; then \ diff --git a/packages/markitdown-mcp/Dockerfile b/packages/markitdown-mcp/Dockerfile index 773936a15b..18f78a30f1 100644 --- a/packages/markitdown-mcp/Dockerfile +++ b/packages/markitdown-mcp/Dockerfile @@ -1,28 +1,27 @@ -FROM python:3.13-slim-bullseye +FROM python:3.13-slim-trixie ENV DEBIAN_FRONTEND=noninteractive ENV EXIFTOOL_PATH=/usr/bin/exiftool ENV FFMPEG_PATH=/usr/bin/ffmpeg ENV MARKITDOWN_ENABLE_PLUGINS=True +ENV ORT_DISABLE_TELEMETRY=1 -# Runtime dependency -# NOTE: Add any additional MarkItDown plugins here -RUN apt-get update && apt-get install -y --no-install-recommends \ - ffmpeg \ - exiftool - -# Cleanup -RUN rm -rf /var/lib/apt/lists/* +# Runtime dependencies +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ffmpeg \ + libimage-exiftool-perl \ + && rm -rf /var/lib/apt/lists/* COPY . /app -RUN pip --no-cache-dir install /app + +RUN pip install --no-cache-dir /app WORKDIR /workdir -# Default USERID and GROUPID ARG USERID=nobody ARG GROUPID=nogroup -USER $USERID:$GROUPID +USER ${USERID}:${GROUPID} -ENTRYPOINT [ "markitdown-mcp" ] +ENTRYPOINT ["markitdown-mcp"] diff --git a/packages/markitdown-mcp/src/markitdown_mcp/__main__.py b/packages/markitdown-mcp/src/markitdown_mcp/__main__.py index 89f89444e7..dcc9e38f2c 100644 --- a/packages/markitdown-mcp/src/markitdown_mcp/__main__.py +++ b/packages/markitdown-mcp/src/markitdown_mcp/__main__.py @@ -3,6 +3,7 @@ import os from collections.abc import AsyncIterator from mcp.server.fastmcp import FastMCP +from mcp.server.fastmcp.server import Settings from starlette.applications import Starlette from mcp.server.sse import SseServerTransport from starlette.requests import Request @@ -13,6 +14,10 @@ from markitdown import MarkItDown import uvicorn +# Resolve the forward reference in Settings.lifespan before the model is first +# instantiated, otherwise pydantic-settings emits IncompleteFieldDefinitionWarning. +Settings.model_rebuild() + # Initialize FastMCP server for MarkItDown (SSE) mcp = FastMCP("markitdown")