diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile index 95e4e84795..06e1b6e601 100644 --- a/docker/base/Dockerfile +++ b/docker/base/Dockerfile @@ -7,7 +7,7 @@ ARG TARGETPLATFORM # Stage 1: Build and strip Calibre FROM ubuntu:noble@sha256:561618e2c15bf2397621dd04f96926663a3b5616c189cf7e38db7e82f5c538ea AS calibre-build ARG TARGETPLATFORM -ARG CALIBRE_VERSION=9.4.0 +ARG CALIBRE_VERSION=9.13.0 ARG CALIBRE_STRIP_WEBENGINE=false RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ @@ -17,7 +17,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ ca-certificates curl xz-utils libnss3 libfontconfig1 \ libgl1 libegl1 libdbus-1-3 libasound2t64 libxcomposite1 \ libxrandr2 libxkbcommon0 libxi6 libxtst6 libopengl0 \ - poppler-utils; \ + poppler-utils tzdata; \ rm -rf /var/lib/apt/lists/*; \ \ case "$(uname -m)" in \ @@ -218,8 +218,12 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ # Keep iso639.calibre_msgpack (required) # Keep only en-US.pak from qtwebengine_locales (required for WebEngine) rm -rf /opt/calibre/lib/qt6/translations; \ - find /opt/calibre/translations -mindepth 1 -maxdepth 1 ! -name 'qtwebengine_locales' -exec rm -rf {} +; \ - find /opt/calibre/translations/qtwebengine_locales -type f ! -name 'en-US.pak' -delete 2>/dev/null || true; \ + if [ -d /opt/calibre/translations ]; then \ + find /opt/calibre/translations -mindepth 1 -maxdepth 1 ! -name 'qtwebengine_locales' -exec rm -rf {} + 2>/dev/null || true; \ + if [ -d /opt/calibre/translations/qtwebengine_locales ]; then \ + find /opt/calibre/translations/qtwebengine_locales -type f ! -name 'en-US.pak' -delete 2>/dev/null || true; \ + fi; \ + fi; \ if [ -d /opt/calibre/resources/localization ]; then \ rm -rf /opt/calibre/resources/localization/locales.zip \ /opt/calibre/resources/localization/stats.calibre_msgpack \ @@ -272,7 +276,7 @@ RUN if [ "${CALIBRE_STRIP_WEBENGINE}" = "true" ]; then \ # Stage 2: Build Ghostscript from source FROM ubuntu:noble@sha256:561618e2c15bf2397621dd04f96926663a3b5616c189cf7e38db7e82f5c538ea AS gs-build ARG TARGETPLATFORM -ARG GS_VERSION=10.06.0 +ARG GS_VERSION=10.07.1 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/tmp/gs-build,id=gs-build-${TARGETPLATFORM:-local} \ @@ -296,8 +300,8 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ # Stage 3: Build PDF Tools (QPDF and ImageMagick 7) FROM ubuntu:noble@sha256:561618e2c15bf2397621dd04f96926663a3b5616c189cf7e38db7e82f5c538ea AS pdf-tools-build ARG TARGETPLATFORM -ARG QPDF_VERSION=12.3.2 -ARG IM_VERSION=7.1.2-13 +ARG QPDF_VERSION=12.4.0 +ARG IM_VERSION=7.1.2-29 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ --mount=type=cache,target=/tmp/pdf-tools-build,id=pdf-tools-${TARGETPLATFORM:-local} \ @@ -341,7 +345,7 @@ RUN mkdir -p /magick-export/usr/bin \ # Stage 4: Build Python venv FROM ubuntu:noble@sha256:561618e2c15bf2397621dd04f96926663a3b5616c189cf7e38db7e82f5c538ea AS python-venv-build ARG TARGETPLATFORM -ARG UNOSERVER_VERSION=3.6 +ARG UNOSERVER_VERSION=3.7 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ apt-get update && apt-get install -y --no-install-recommends \ @@ -373,7 +377,7 @@ ENV DEBIAN_FRONTEND=noninteractive \ LC_ALL=C.UTF-8 \ TESS_BASE_PATH=/usr/share/tesseract-ocr/5/tessdata -ARG UNOSERVER_VERSION=3.6 +ARG UNOSERVER_VERSION=3.7 RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \ set -eux; \ diff --git a/docker/embedded/Dockerfile b/docker/embedded/Dockerfile index d4ad422476..77a6c0dca0 100644 --- a/docker/embedded/Dockerfile +++ b/docker/embedded/Dockerfile @@ -7,7 +7,7 @@ ARG BASE_IMAGE=stirlingtools/stirling-pdf-base:${BASE_VERSION} # Stage 1: Build the Java application and frontend FROM gradle:9.6.1-jdk25@sha256:e8aeffb8197b17151ce24607811f60e91125f0018f7a3b08dc504ba9168a9c4f AS app-build -ARG TASK_VERSION=3.49.1 +ARG TASK_VERSION=3.52.0 RUN apt-get update \ && apt-get install -y --no-install-recommends curl ca-certificates \ && update-ca-certificates \ diff --git a/docker/embedded/Dockerfile.fat b/docker/embedded/Dockerfile.fat index 58eafec851..27387cff88 100644 --- a/docker/embedded/Dockerfile.fat +++ b/docker/embedded/Dockerfile.fat @@ -8,7 +8,7 @@ ARG BASE_IMAGE=stirlingtools/stirling-pdf-base:${BASE_VERSION} # Stage 1: Build the Java application and frontend FROM gradle:9.6.1-jdk25@sha256:e8aeffb8197b17151ce24607811f60e91125f0018f7a3b08dc504ba9168a9c4f AS app-build -ARG TASK_VERSION=3.49.1 +ARG TASK_VERSION=3.52.0 RUN apt-get update \ && apt-get install -y --no-install-recommends curl ca-certificates \ && update-ca-certificates \ diff --git a/docker/embedded/Dockerfile.ultra-lite b/docker/embedded/Dockerfile.ultra-lite index d4a21b7812..7493c6280f 100644 --- a/docker/embedded/Dockerfile.ultra-lite +++ b/docker/embedded/Dockerfile.ultra-lite @@ -5,7 +5,7 @@ FROM gradle:9.6.1-jdk25@sha256:e8aeffb8197b17151ce24607811f60e91125f0018f7a3b08dc504ba9168a9c4f AS build # Install Node.js and npm for frontend build -ARG TASK_VERSION=3.49.1 +ARG TASK_VERSION=3.52.0 RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ && curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \ diff --git a/docker/unoserver/Dockerfile b/docker/unoserver/Dockerfile index 5bd887c8ed..da5ba27371 100644 --- a/docker/unoserver/Dockerfile +++ b/docker/unoserver/Dockerfile @@ -1,9 +1,9 @@ # Standalone unoserver image for Stirling-PDF remote UNO mode. -# Pinned to unoserver 3.6 to match Stirling-PDF's client (avoids 3.4/3.6 wire mismatch). +# Pinned to unoserver 3.7 to match Stirling-PDF's client (avoids wire mismatch). FROM ubuntu:noble@sha256:561618e2c15bf2397621dd04f96926663a3b5616c189cf7e38db7e82f5c538ea -ARG UNOSERVER_VERSION=3.6 +ARG UNOSERVER_VERSION=3.7 # ~120 MB of CJK fonts — opt-in. ARG INSTALL_CJK_FONTS=false diff --git a/engine/Dockerfile b/engine/Dockerfile index d9bde0f89d..17a917761b 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -1,7 +1,7 @@ # syntax=docker/dockerfile:1.5 FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim@sha256:531f855bda2c73cd6ef67d56b733b357cea384185b3022bd09f05e002cd144ca -ARG TASK_VERSION=3.49.1 +ARG TASK_VERSION=3.52.0 RUN apt-get update \ && apt-get install -y --no-install-recommends curl ca-certificates \ && ARCH=$(dpkg --print-architecture) \