lab

s-pdf (latest)

Published 2026-01-24 12:54:02 +00:00 by myve

Installation

docker pull hub.myvelabs.com/lab/s-pdf:latest
sha256:0091960c3908293a18a3f5b6140f0ab0425708636dd9bac156831e3e8556c6d0

About this package

#1 PDF Application on GitHub that lets you edit PDFs on any device anywhere

Image layers

# debian.sh --arch 'amd64' out/ 'stable' '@1768176000'
SHELL [/bin/bash -o pipefail -c]
ENV DEBIAN_FRONTEND=noninteractive
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
ENV TESS_BASE_PATH=/usr/share/tesseract-ocr/5/tessdata
RUN /bin/bash -o pipefail -c apt-get update && apt-get install -y --no-install-recommends ca-certificates tzdata tini bash fontconfig openjdk-21-jre-headless ffmpeg poppler-utils ocrmypdf imagemagick fontforge ghostscript fonts-dejavu fonts-liberation fonts-liberation2 fonts-crosextra-caladea fonts-crosextra-carlito fonts-linuxlibertine fonts-noto-core fonts-noto-cjk fonts-noto-mono fonts-noto-ui-core fonts-noto-color-emoji ttf-wqy-zenhei fonts-arphic-ukai fonts-arphic-uming python3 python3-venv python3-uno tesseract-ocr tesseract-ocr-eng tesseract-ocr-deu tesseract-ocr-fra tesseract-ocr-por tesseract-ocr-chi-sim libcairo2 libpango-1.0-0 libpangoft2-1.0-0 libgdk-pixbuf-2.0-0 gosu unpaper qpdf libfreetype6 libfontconfig1 libx11-6 libxt6 libxext6 libxrender1 libxtst6 libxi6 libxinerama1 libxkbcommon0 libxkbfile1 libsm6 libice6 libegl1 libopengl0 libgl1 libxdamage1 libxfixes3 libxshmfence1 libdrm2 libgbm1 libxkbcommon-x11-0 libxrandr2 libxcomposite1 libnss3 libx11-xcb1 libxcb-cursor0 libdbus-1-3 libglib2.0-0 xvfb x11-utils coreutils xz-utils gpgv curl xdg-utils && curl -fsSL https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin && apt-get purge -y xz-utils gpgv xdg-utils && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* # buildkit
RUN /bin/bash -o pipefail -c set -eux; . /etc/os-release; echo "deb http://deb.debian.org/debian ${VERSION_CODENAME}-backports main" > /etc/apt/sources.list.d/backports.list; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends -t ${VERSION_CODENAME}-backports libreoffice libreoffice-java-common; rm -rf /var/lib/apt/lists/*; libreoffice --version # buildkit
RUN /bin/bash -o pipefail -c ln -sf /opt/calibre/ebook-convert /usr/bin/ebook-convert && /opt/calibre/ebook-convert --version # buildkit
ARG PUID=1000
ARG PGID=1000
RUN |2 PUID=1000 PGID=1000 /bin/bash -o pipefail -c set -eux; if ! getent group stirlingpdfgroup >/dev/null 2>&1; then if getent group "${PGID}" >/dev/null 2>&1; then groupadd -o -g "${PGID}" stirlingpdfgroup; else groupadd -g "${PGID}" stirlingpdfgroup; fi; fi; if ! id -u stirlingpdfuser >/dev/null 2>&1; then if getent passwd | awk -F: -v id="${PUID}" '$3==id{found=1} END{exit !found}'; then echo "UID ${PUID} already in use – creating stirlingpdfuser with automatic UID"; useradd -m -g stirlingpdfgroup -d /home/stirlingpdfuser -s /bin/bash stirlingpdfuser; else useradd -m -u "${PUID}" -g stirlingpdfgroup -d /home/stirlingpdfuser -s /bin/bash stirlingpdfuser; fi; fi # buildkit
RUN |2 PUID=1000 PGID=1000 /bin/bash -o pipefail -c ln -sf /usr/sbin/gosu /usr/local/bin/su-exec # buildkit
COPY --chown=stirlingpdfuser:stirlingpdfgroup /app/app/core/build/libs/*.jar /app.jar # buildkit
COPY --chown=stirlingpdfuser:stirlingpdfgroup /app/build/libs/restart-helper.jar /restart-helper.jar # buildkit
COPY scripts/ /scripts/ # buildkit
COPY app/core/src/main/resources/static/fonts/*.ttf /usr/share/fonts/truetype/ # buildkit
ARG VERSION_TAG=2.4.0
LABEL org.opencontainers.image.title=Stirling-PDF
LABEL org.opencontainers.image.description=Stirling-PDF with embedded frontend - Full version with Calibre, LibreOffice, Tesseract, OCRmyPDF, and more
LABEL org.opencontainers.image.source=https://github.com/Stirling-Tools/Stirling-PDF
LABEL org.opencontainers.image.licenses=MIT
LABEL org.opencontainers.image.vendor=Stirling-Tools
LABEL org.opencontainers.image.url=https://www.stirlingpdf.com
LABEL org.opencontainers.image.documentation=https://docs.stirlingpdf.com
LABEL maintainer=Stirling-Tools
LABEL org.opencontainers.image.authors=Stirling-Tools
LABEL org.opencontainers.image.version=2.4.0
LABEL org.opencontainers.image.keywords=PDF, manipulation, API, Spring Boot, React
ENV VERSION_TAG=2.4.0 JAVA_BASE_OPTS=-XX:+ExitOnOutOfMemoryError -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/configs/heap_dumps -XX:+UnlockExperimentalVMOptions -XX:MaxRAMPercentage=75 -XX:InitiatingHeapOccupancyPercent=20 -XX:+G1PeriodicGCInvokesConcurrent -XX:G1PeriodicGCInterval=10000 -XX:+UseStringDeduplication -XX:G1PeriodicGCSystemLoadThreshold=70 -Djava.awt.headless=true JAVA_CUSTOM_OPTS= HOME=/home/stirlingpdfuser PUID=1000 PGID=1000 UMASK=022 UNO_PATH=/usr/lib/libreoffice/program LIBREOFFICE_BIN_PATH=/usr/lib/libreoffice/program/soffice.bin STIRLING_TEMPFILES_DIRECTORY=/tmp/stirling-pdf TMPDIR=/tmp/stirling-pdf TEMP=/tmp/stirling-pdf TMP=/tmp/stirling-pdf
RUN |3 PUID=1000 PGID=1000 VERSION_TAG=2.4.0 /bin/bash -o pipefail -c python3 -m venv /opt/venv --system-site-packages && /opt/venv/bin/pip install --no-cache-dir weasyprint pdf2image opencv-python-headless && /opt/venv/bin/python -c "import cv2; print('OpenCV version:', cv2.__version__)" # buildkit
ARG UNOSERVER_VERSION=3.6
RUN |4 PUID=1000 PGID=1000 VERSION_TAG=2.4.0 UNOSERVER_VERSION=3.6 /bin/bash -o pipefail -c python3 -m venv /opt/unoserver-venv --system-site-packages && /opt/unoserver-venv/bin/pip install --no-cache-dir "unoserver==${UNOSERVER_VERSION}" # buildkit
RUN |4 PUID=1000 PGID=1000 VERSION_TAG=2.4.0 UNOSERVER_VERSION=3.6 /bin/bash -o pipefail -c ln -sf /opt/unoserver-venv/bin/unoconvert /opt/venv/bin/unoconvert && ln -sf /opt/unoserver-venv/bin/unoserver /opt/venv/bin/unoserver # buildkit
ENV PATH=/opt/venv/bin:/opt/unoserver-venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
RUN |4 PUID=1000 PGID=1000 VERSION_TAG=2.4.0 UNOSERVER_VERSION=3.6 /bin/bash -o pipefail -c set -eux; chmod +x /scripts/*; mkdir -p /configs /configs/heap_dumps /logs /customFiles /pipeline/watchedFolders /pipeline/finishedFolders /tmp/stirling-pdf; chown -R stirlingpdfuser:stirlingpdfgroup /home/stirlingpdfuser /configs /logs /customFiles /pipeline /tmp/stirling-pdf /app.jar /restart-helper.jar /usr/share/fonts/truetype /scripts; chmod -R 755 /tmp/stirling-pdf # buildkit
RUN |4 PUID=1000 PGID=1000 VERSION_TAG=2.4.0 UNOSERVER_VERSION=3.6 /bin/bash -o pipefail -c fc-cache -f -v # buildkit
ENV QT_QPA_PLATFORM=offscreen QTWEBENGINE_CHROMIUM_FLAGS=--disable-gpu --disable-dev-shm-usage
EXPOSE [8080/tcp]
STOPSIGNAL SIGTERM
ENTRYPOINT ["tini" "--" "/scripts/init.sh"]
CMD []

Labels

Key Value
maintainer Stirling-Tools
org.opencontainers.image.authors Stirling-Tools
org.opencontainers.image.created 2026-01-24T01:18:07.057Z
org.opencontainers.image.description #1 PDF Application on GitHub that lets you edit PDFs on any device anywhere
org.opencontainers.image.documentation https://docs.stirlingpdf.com
org.opencontainers.image.keywords PDF, manipulation, API, Spring Boot, React
org.opencontainers.image.licenses NOASSERTION
org.opencontainers.image.revision c77cd73debe87ac469b1b05a5174d81d0deb8455
org.opencontainers.image.source https://github.com/Stirling-Tools/Stirling-PDF
org.opencontainers.image.title Stirling-PDF
org.opencontainers.image.url https://github.com/Stirling-Tools/Stirling-PDF
org.opencontainers.image.vendor Stirling-Tools
org.opencontainers.image.version 2.4.0
Details
Container
2026-01-24 12:54:02 +00:00
11
OCI / Docker
linux/amd64
Stirling-Tools
NOASSERTION
1.6 GiB
Versions (1) View all
latest 2026-01-24