]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Adds extra system libraries for pikepdf/Pillow building
authorTrenton Holmes <trenton.holmes@psware.com>
Tue, 26 Apr 2022 21:14:47 +0000 (14:14 -0700)
committerTrenton Holmes <trenton.holmes@psware.com>
Wed, 27 Apr 2022 22:48:19 +0000 (15:48 -0700)
Dockerfile
build-docker-image.sh
docker-builders/Dockerfile.jbig2enc
docker-builders/Dockerfile.pikepdf
docker-builders/Dockerfile.psycopg2
docker-builders/Dockerfile.qpdf

index 2267eab0b75308c7c4da734e2a12e80e3da344bd..8d2efca6b11ded36bb226be493e6bb77c20580c8 100644 (file)
@@ -47,7 +47,14 @@ ARG RUNTIME_PACKAGES="\
   liblept5 \
   libpq5 \
   libxml2 \
+  liblcms2-2 \
+  libtiff5 \
   libxslt1.1 \
+  libfreetype6 \
+  libwebp6 \
+  libopenjp2-7 \
+  libimagequant0 \
+  libraqm0 \
   libgnutls30 \
   libjpeg62-turbo \
   optipng \
index f7ab62ca67225c0425b8c05744c8f734a15f0ba4..e3bdd79989cd1c5ed81684689e041958f1c6db22 100755 (executable)
@@ -37,6 +37,9 @@ psycopg2_git_tag=${psycopg2_version//./_}
 # pikepdf uses vX.Y.Z
 pikepdf_git_tag="v${pikepdf_version}"
 
+# https://docs.docker.com/develop/develop-images/build_enhancements/
+export DOCKER_BUILDKIT=1
+
 docker build --file "$1" \
        --build-arg JBIG2ENC_VERSION="${jbig2enc_version}" \
        --build-arg QPDF_VERSION="${qpdf_version}" \
index 4bc6331705ad1544f7e26bf987a85b9509f66f9c..d9f1643fd98b227c53743f91fb4c75d4771cb1b2 100644 (file)
@@ -2,7 +2,7 @@
 # Inputs:
 #    - JBIG2ENC_VERSION - the Git tag to checkout and build
 
-FROM debian:bullseye-slim
+FROM debian:bullseye-slim as main
 
 LABEL org.opencontainers.image.description="A intermediate image with jbig2enc built"
 
index 3d2e5f2358dd3ae40d71d94e309a81c9e1f36a49..fa9618ddcf2d209e2d4f43cd8da49c48cc3be4eb 100644 (file)
@@ -13,7 +13,7 @@ FROM ghcr.io/${REPO}/builder/qpdf:${QPDF_VERSION} as qpdf-builder
 
 # This does nothing, except provide a name for a copy below
 
-FROM python:3.9-slim-bullseye
+FROM python:3.9-slim-bullseye as main
 
 LABEL org.opencontainers.image.description="A intermediate image with pikepdf wheel built"
 
@@ -21,14 +21,33 @@ ARG DEBIAN_FRONTEND=noninteractive
 
 ARG BUILD_PACKAGES="\
   build-essential \
+  python3-dev \
+  python3-pip \
   git \
-  libjpeg62-turbo-dev \
-  zlib1g-dev \
+  # qpdf requirement - https://github.com/qpdf/qpdf#crypto-providers
   libgnutls28-dev \
+  # lxml requrements - https://lxml.de/installation.html
   libxml2-dev \
   libxslt1-dev \
-  python3-dev \
-  python3-pip"
+  # Pillow requirements - https://pillow.readthedocs.io/en/stable/installation.html
+  # JPEG functionality
+  libjpeg62-turbo-dev \
+  # conpressed PNG
+  zlib1g-dev \
+  # compressed TIFF
+  libtiff-dev \
+  # type related services
+  libfreetype-dev \
+  # color management
+  liblcms2-dev \
+  # WebP format
+  libwebp-dev \
+  # JPEG 2000
+  libopenjp2-7-dev \
+  # improved color quantization
+  libimagequant-dev \
+  # complex text layout support
+  libraqm-dev"
 
 WORKDIR /usr/src
 
@@ -42,7 +61,11 @@ RUN set -eux \
   && apt-get install --yes --quiet --no-install-recommends $BUILD_PACKAGES \
   && dpkg --install libqpdf28_*.deb \
   && dpkg --install libqpdf-dev_*.deb \
-  && python3 -m pip install --no-cache-dir --upgrade pip wheel pybind11 \
+  && python3 -m pip install --no-cache-dir --upgrade \
+    pip \
+    wheel \
+    # https://pikepdf.readthedocs.io/en/latest/installation.html#requirements
+    pybind11 \
   && rm -rf /var/lib/apt/lists/*
 
 # Layers after this point change according to required version
index cfd7ff56aabc0e7b94c9d7dd7479f5774a7a11e0..78bdf24386fa6d998321f8229428319ecb8b38b0 100644 (file)
@@ -3,7 +3,7 @@
 #    - PSYCOPG2_GIT_TAG - The Git tag to clone and build from
 #    - PSYCOPG2_VERSION - Unused, kept for future possible usage
 
-FROM python:3.9-slim-bullseye
+FROM python:3.9-slim-bullseye as main
 
 LABEL org.opencontainers.image.description="A intermediate image with psycopg2 wheel built"
 
@@ -12,9 +12,10 @@ ARG DEBIAN_FRONTEND=noninteractive
 ARG BUILD_PACKAGES="\
   build-essential \
   git \
-  libpq-dev \
   python3-dev \
-  python3-pip"
+  python3-pip \
+  # https://www.psycopg.org/docs/install.html#prerequisites
+  libpq-dev"
 
 WORKDIR /usr/src
 
index 770d8c2ee3a0c3d415c6ba75079758b6f7bb4a3b..0d738a4ad72114b6bf40ee7d026841197d46524e 100644 (file)
@@ -1,4 +1,4 @@
-FROM debian:bullseye-slim
+FROM debian:bullseye-slim as main
 
 LABEL org.opencontainers.image.description="A intermediate image with qpdf built"
 
@@ -11,6 +11,7 @@ ARG BUILD_PACKAGES="\
   devscripts \
   equivs  \
   libtool \
+  # https://qpdf.readthedocs.io/en/stable/installation.html#system-requirements
   libjpeg62-turbo-dev \
   libgnutls28-dev \
   packaging-dev \