From 97d117d2423279ee31705352c666d80af5a34791 Mon Sep 17 00:00:00 2001 From: Andreas Mautz Date: Tue, 28 Jan 2025 18:36:29 +0100 Subject: [PATCH 1/4] [INFRA] change imagick installation --- src/bookworm/src/Dockerfile | 21 +++------------------ src/bullseye/src/Dockerfile | 21 +++------------------ 2 files changed, 6 insertions(+), 36 deletions(-) diff --git a/src/bookworm/src/Dockerfile b/src/bookworm/src/Dockerfile index 428a804..1efa1c9 100644 --- a/src/bookworm/src/Dockerfile +++ b/src/bookworm/src/Dockerfile @@ -23,7 +23,7 @@ RUN set -xe; \ ARG IMAGICK_RUNTIME_REQUIREMENTS="libpng16-16 liblcms2-2 libgomp1 libltdl7 bzip2 gosu brotli" ARG IMAGICK_RUNTIME_REQUIREMENTS_EXTRA="" -ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm" +ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm libmagickwand-dev imagemagick" ARG IMAGICK_BUILD_REQUIREMENTS_EXTRA="" ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" @@ -96,23 +96,8 @@ RUN cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr; \ ################################################ ## install imagick ################################################ - mkdir -p /tmp/imagemagick; -WORKDIR /tmp/imagemagick -RUN docker-package-download -o imagemagick.tar.gz -s https://github.com/Imagick/imagick/archive/refs/tags/${IMAGICK_VERSION}.tar.gz/; \ - tar --strip 1 -xzf imagemagick.tar.gz; \ - ./configure \ - --prefix=/usr \ - --with-webp \ - --without-perl \ - --without-x \ - --without-xml \ - --without-pango \ - --without-jbig \ - --without-wmf \ - --with-perl=no \ - --with-modules \ - ${IMAGICK_EXTRA_CONFIGURE_ARGS:-} \ - ; \ +RUN apt-get update && \ + apt-get install -y --no-install-recommends imagemagick libmagickwand-dev; \ make -j"$(nproc)"; \ make install; \ make clean; \ diff --git a/src/bullseye/src/Dockerfile b/src/bullseye/src/Dockerfile index c0aa359..2d54b67 100644 --- a/src/bullseye/src/Dockerfile +++ b/src/bullseye/src/Dockerfile @@ -23,7 +23,7 @@ RUN set -xe; \ ARG IMAGICK_RUNTIME_REQUIREMENTS="libpng16-16 liblcms2-2 libgomp1 libltdl7 bzip2 gosu brotli" ARG IMAGICK_RUNTIME_REQUIREMENTS_EXTRA="" -ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm" +ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm libmagickwand-dev imagemagick" ARG IMAGICK_BUILD_REQUIREMENTS_EXTRA="" ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" @@ -96,23 +96,8 @@ RUN cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr; \ ################################################ ## install imagick ################################################ - mkdir -p /tmp/imagemagick; -WORKDIR /tmp/imagemagick -RUN docker-package-download -o imagemagick.tar.gz -s https://github.com/Imagick/imagick/archive/refs/tags/${IMAGICK_VERSION}.tar.gz/; \ - tar --strip 1 -xzf imagemagick.tar.gz; \ - ./configure \ - --prefix=/usr \ - --with-webp \ - --without-perl \ - --without-x \ - --without-xml \ - --without-pango \ - --without-jbig \ - --without-wmf \ - --with-perl=no \ - --with-modules \ - ${IMAGICK_EXTRA_CONFIGURE_ARGS:-} \ - ; \ +RUN apt-get update && \ + apt-get install -y --no-install-recommends imagemagick libmagickwand-dev; \ make -j"$(nproc)"; \ make install; \ make clean; \ From cdb65a93038c7f45356eb2c2b6efb54af1fa8935 Mon Sep 17 00:00:00 2001 From: Andreas Mautz Date: Tue, 28 Jan 2025 18:41:30 +0100 Subject: [PATCH 2/4] [INFRA] ignore DL3008 --- src/bookworm/src/Dockerfile | 3 +-- src/bullseye/src/Dockerfile | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/bookworm/src/Dockerfile b/src/bookworm/src/Dockerfile index 1efa1c9..68a678a 100644 --- a/src/bookworm/src/Dockerfile +++ b/src/bookworm/src/Dockerfile @@ -24,8 +24,6 @@ RUN set -xe; \ ARG IMAGICK_RUNTIME_REQUIREMENTS="libpng16-16 liblcms2-2 libgomp1 libltdl7 bzip2 gosu brotli" ARG IMAGICK_RUNTIME_REQUIREMENTS_EXTRA="" ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm libmagickwand-dev imagemagick" -ARG IMAGICK_BUILD_REQUIREMENTS_EXTRA="" -ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" ARG MOZJPEG_VERSION="4.1.1" ARG MOZJPEG_EXTRA_CONFIGURE_ARGS="" @@ -42,6 +40,7 @@ ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" ARG OPENJPEG_VERSION="2.5.3" ## configure imagick and the dependencies +# hadolint ignore=DL3008 RUN set -xe; \ \ /usr/local/bin/docker-install-requirements imagick; \ diff --git a/src/bullseye/src/Dockerfile b/src/bullseye/src/Dockerfile index 2d54b67..7f5d455 100644 --- a/src/bullseye/src/Dockerfile +++ b/src/bullseye/src/Dockerfile @@ -24,8 +24,6 @@ RUN set -xe; \ ARG IMAGICK_RUNTIME_REQUIREMENTS="libpng16-16 liblcms2-2 libgomp1 libltdl7 bzip2 gosu brotli" ARG IMAGICK_RUNTIME_REQUIREMENTS_EXTRA="" ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm libmagickwand-dev imagemagick" -ARG IMAGICK_BUILD_REQUIREMENTS_EXTRA="" -ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" ARG MOZJPEG_VERSION="4.1.1" ARG MOZJPEG_EXTRA_CONFIGURE_ARGS="" @@ -42,6 +40,7 @@ ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" ARG OPENJPEG_VERSION="2.5.3" ## configure imagick and the dependencies +# hadolint ignore=DL3008 RUN set -xe; \ \ /usr/local/bin/docker-install-requirements imagick; \ From b720bc7359f66a43b0f24f71a091ed0b264fed67 Mon Sep 17 00:00:00 2001 From: Andreas Mautz Date: Tue, 28 Jan 2025 18:57:47 +0100 Subject: [PATCH 3/4] [INFRA] remove self-build libs --- src/bookworm/src/Dockerfile | 61 +++++++++++-------------------------- src/bullseye/src/Dockerfile | 61 +++++++++++-------------------------- 2 files changed, 34 insertions(+), 88 deletions(-) diff --git a/src/bookworm/src/Dockerfile b/src/bookworm/src/Dockerfile index 68a678a..796915b 100644 --- a/src/bookworm/src/Dockerfile +++ b/src/bookworm/src/Dockerfile @@ -23,7 +23,7 @@ RUN set -xe; \ ARG IMAGICK_RUNTIME_REQUIREMENTS="libpng16-16 liblcms2-2 libgomp1 libltdl7 bzip2 gosu brotli" ARG IMAGICK_RUNTIME_REQUIREMENTS_EXTRA="" -ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm libmagickwand-dev imagemagick" +ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm" ARG MOZJPEG_VERSION="4.1.1" ARG MOZJPEG_EXTRA_CONFIGURE_ARGS="" @@ -40,49 +40,24 @@ ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" ARG OPENJPEG_VERSION="2.5.3" ## configure imagick and the dependencies -# hadolint ignore=DL3008 RUN set -xe; \ \ /usr/local/bin/docker-install-requirements imagick; \ - ################################################ - ## install mozjpeg - ################################################ - mkdir -p /tmp/mozjpeg; + mkdir -p /tmp/mozjpeg; \ + mkdir -p /tmp/tiff; \ + mkdir -p /tmp/libwebp; \ + mkdir -p /tmp/openjpeg; +################################################ +## install mozjpeg +################################################ WORKDIR /tmp/mozjpeg RUN docker-package-download -o mozjpeg.tar.gz -s https://github.com/mozilla/mozjpeg/archive/refs/tags/v${MOZJPEG_VERSION}.tar.gz; \ tar --strip 1 -xzf mozjpeg.tar.gz; \ cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib -DWITH_JPEG8=true; \ - make install prefix=/usr libdir=/usr/lib64 ; \ - ################################################ - ## install tiff - ################################################ - mkdir -p /tmp/tiff; -WORKDIR /tmp/tiff -RUN docker-package-download -o tiff.tar.gz -s http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz; \ - tar --strip 1 -xzf tiff.tar.gz; \ - ./configure \ - --prefix=/usr \ - ${TIFF_EXTRA_CONFIGURE_ARGS:-} \ - ; \ - make -j"$(nproc)"; \ - make install; \ - ################################################ - ## install webp - ################################################ - mkdir -p /tmp/libwebp; -WORKDIR /tmp/libwebp -RUN docker-package-download -o libwebp.tar.gz -s https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz; \ - tar --strip 1 -xzf libwebp.tar.gz; \ - ./configure \ - --prefix=/usr \ - ${WEBP_EXTRA_CONFIGURE_ARGS:-} \ - ; \ - make -j"$(nproc)"; \ - make install; \ - ################################################ - ## install openjpeg - ################################################ - mkdir -p /tmp/openjpeg; + make install prefix=/usr libdir=/usr/lib64; +################################################ +## install openjpeg +################################################ WORKDIR /tmp/openjpeg RUN docker-package-download -o openjpeg.tar.gz -s https://github.com/uclouvain/openjpeg/releases/download/v${OPENJPEG_VERSION}/openjpeg-v${OPENJPEG_VERSION}-linux-x86_64.tar.gz; \ tar --strip 1 -xzf openjpeg.tar.gz; \ @@ -92,12 +67,10 @@ RUN cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr; \ make -j"$(nproc)"; \ make install; \ make clean; \ - ################################################ - ## install imagick - ################################################ +################################################ +## install imagick +################################################ +# hadolint ignore=DL3008 RUN apt-get update && \ - apt-get install -y --no-install-recommends imagemagick libmagickwand-dev; \ - make -j"$(nproc)"; \ - make install; \ - make clean; \ + apt-get install -y imagemagick libmagickwand-dev; \ /usr/local/bin/docker-layer-clean diff --git a/src/bullseye/src/Dockerfile b/src/bullseye/src/Dockerfile index 7f5d455..ad04cdd 100644 --- a/src/bullseye/src/Dockerfile +++ b/src/bullseye/src/Dockerfile @@ -23,7 +23,7 @@ RUN set -xe; \ ARG IMAGICK_RUNTIME_REQUIREMENTS="libpng16-16 liblcms2-2 libgomp1 libltdl7 bzip2 gosu brotli" ARG IMAGICK_RUNTIME_REQUIREMENTS_EXTRA="" -ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm libmagickwand-dev imagemagick" +ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm" ARG MOZJPEG_VERSION="4.1.1" ARG MOZJPEG_EXTRA_CONFIGURE_ARGS="" @@ -40,49 +40,24 @@ ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" ARG OPENJPEG_VERSION="2.5.3" ## configure imagick and the dependencies -# hadolint ignore=DL3008 RUN set -xe; \ \ /usr/local/bin/docker-install-requirements imagick; \ - ################################################ - ## install mozjpeg - ################################################ - mkdir -p /tmp/mozjpeg; + mkdir -p /tmp/mozjpeg; \ + mkdir -p /tmp/tiff; \ + mkdir -p /tmp/libwebp; \ + mkdir -p /tmp/openjpeg; +################################################ +## install mozjpeg +################################################ WORKDIR /tmp/mozjpeg RUN docker-package-download -o mozjpeg.tar.gz -s https://github.com/mozilla/mozjpeg/archive/refs/tags/v${MOZJPEG_VERSION}.tar.gz; \ tar --strip 1 -xzf mozjpeg.tar.gz; \ cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib -DWITH_JPEG8=true; \ - make install prefix=/usr libdir=/usr/lib64 ; \ - ################################################ - ## install tiff - ################################################ - mkdir -p /tmp/tiff; -WORKDIR /tmp/tiff -RUN docker-package-download -o tiff.tar.gz -s http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz; \ - tar --strip 1 -xzf tiff.tar.gz; \ - ./configure \ - --prefix=/usr \ - ${TIFF_EXTRA_CONFIGURE_ARGS:-} \ - ; \ - make -j"$(nproc)"; \ - make install; \ - ################################################ - ## install webp - ################################################ - mkdir -p /tmp/libwebp; -WORKDIR /tmp/libwebp -RUN docker-package-download -o libwebp.tar.gz -s https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz; \ - tar --strip 1 -xzf libwebp.tar.gz; \ - ./configure \ - --prefix=/usr \ - ${WEBP_EXTRA_CONFIGURE_ARGS:-} \ - ; \ - make -j"$(nproc)"; \ - make install; \ - ################################################ - ## install openjpeg - ################################################ - mkdir -p /tmp/openjpeg; + make install prefix=/usr libdir=/usr/lib64; +################################################ +## install openjpeg +################################################ WORKDIR /tmp/openjpeg RUN docker-package-download -o openjpeg.tar.gz -s https://github.com/uclouvain/openjpeg/releases/download/v${OPENJPEG_VERSION}/openjpeg-v${OPENJPEG_VERSION}-linux-x86_64.tar.gz; \ tar --strip 1 -xzf openjpeg.tar.gz; \ @@ -92,12 +67,10 @@ RUN cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr; \ make -j"$(nproc)"; \ make install; \ make clean; \ - ################################################ - ## install imagick - ################################################ +################################################ +## install imagick +################################################ +# hadolint ignore=DL3008 RUN apt-get update && \ - apt-get install -y --no-install-recommends imagemagick libmagickwand-dev; \ - make -j"$(nproc)"; \ - make install; \ - make clean; \ + apt-get install -y imagemagick libmagickwand-dev; \ /usr/local/bin/docker-layer-clean From 6bd6392541563d4af1c7397eb48d5e61a05f4844 Mon Sep 17 00:00:00 2001 From: Andreas Mautz Date: Sun, 2 Mar 2025 12:19:57 +0100 Subject: [PATCH 4/4] [INFRA] revert some recent changes and bump versions --- src/bookworm/src/Dockerfile | 66 +++++++++++++++++++++++++++++++------ src/bullseye/src/Dockerfile | 66 +++++++++++++++++++++++++++++++------ 2 files changed, 112 insertions(+), 20 deletions(-) diff --git a/src/bookworm/src/Dockerfile b/src/bookworm/src/Dockerfile index 796915b..020b349 100644 --- a/src/bookworm/src/Dockerfile +++ b/src/bookworm/src/Dockerfile @@ -10,6 +10,12 @@ RUN set -xe; \ chown www-data:www-data /home/www-data; \ usermod -d /home/www-data www-data; \ \ + ## block packages from being installed + { \ + echo 'Package: libjpeg*'; \ + echo 'Pin: release *'; \ + echo 'Pin-Priority: -1'; \ + } > /etc/apt/preferences.d/no-libjpeg; \ { \ echo 'Package: libtiff*'; \ echo 'Pin: release *'; \ @@ -23,18 +29,20 @@ RUN set -xe; \ ARG IMAGICK_RUNTIME_REQUIREMENTS="libpng16-16 liblcms2-2 libgomp1 libltdl7 bzip2 gosu brotli" ARG IMAGICK_RUNTIME_REQUIREMENTS_EXTRA="" -ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm" +ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libltdl-dev nasm" +ARG IMAGICK_BUILD_REQUIREMENTS_EXTRA="" +ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" ARG MOZJPEG_VERSION="4.1.1" ARG MOZJPEG_EXTRA_CONFIGURE_ARGS="" -ARG TIFF_VERSION="4.6.0" +ARG TIFF_VERSION="4.7.0" ARG TIFF_EXTRA_CONFIGURE_ARGS="" -ARG WEBP_VERSION="1.4.0" +ARG WEBP_VERSION="1.5.0" ARG WEBP_EXTRA_CONFIGURE_ARGS="" -ARG IMAGICK_VERSION="3.7.0" +ARG IMAGICK_VERSION="7.1.1-44" ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" ARG OPENJPEG_VERSION="2.5.3" @@ -56,21 +64,59 @@ RUN docker-package-download -o mozjpeg.tar.gz -s https://github.com/mozilla/mozj cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib -DWITH_JPEG8=true; \ make install prefix=/usr libdir=/usr/lib64; ################################################ +## install tiff +################################################ +WORKDIR /tmp/tiff +RUN docker-package-download -o tiff.tar.gz -s http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz; \ + tar --strip 1 -xzf tiff.tar.gz; \ + ./configure \ + --prefix=/usr \ + ${TIFF_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j"$(nproc)"; \ + make install; +################################################ +## install webp +################################################ +WORKDIR /tmp/libwebp +RUN docker-package-download -o libwebp.tar.gz -s https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz; \ + tar --strip 1 -xzf libwebp.tar.gz; \ + ./configure \ + --prefix=/usr \ + ${WEBP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j"$(nproc)"; \ + make install; +################################################ ## install openjpeg ################################################ WORKDIR /tmp/openjpeg -RUN docker-package-download -o openjpeg.tar.gz -s https://github.com/uclouvain/openjpeg/releases/download/v${OPENJPEG_VERSION}/openjpeg-v${OPENJPEG_VERSION}-linux-x86_64.tar.gz; \ +RUN docker-package-download -o openjpeg.tar.gz -s https://github.com/uclouvain/openjpeg/archive/refs/tags/v${OPENJPEG_VERSION}.tar.gz; \ tar --strip 1 -xzf openjpeg.tar.gz; \ mkdir build; WORKDIR /tmp/openjpeg/build RUN cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr; \ make -j"$(nproc)"; \ - make install; \ - make clean; \ + make install; ################################################ ## install imagick ################################################ -# hadolint ignore=DL3008 -RUN apt-get update && \ - apt-get install -y imagemagick libmagickwand-dev; \ +WORKDIR /tmp/imagemagick +RUN docker-package-download -o imagemagick.tar.gz -s https://github.com/ImageMagick/ImageMagick/archive/refs/tags/${IMAGICK_VERSION}.tar.gz; \ + tar --strip 1 -xzf imagemagick.tar.gz; \ + ./configure \ + --prefix=/usr \ + --with-webp \ + --without-perl \ + --without-x \ + --without-xml \ + --without-pango \ + --without-jbig \ + --without-wmf \ + --with-perl=no \ + --with-modules \ + ${IMAGICK_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j"$(nproc)"; \ + make install; \ /usr/local/bin/docker-layer-clean diff --git a/src/bullseye/src/Dockerfile b/src/bullseye/src/Dockerfile index ad04cdd..5b9d454 100644 --- a/src/bullseye/src/Dockerfile +++ b/src/bullseye/src/Dockerfile @@ -10,6 +10,12 @@ RUN set -xe; \ chown www-data:www-data /home/www-data; \ usermod -d /home/www-data www-data; \ \ + ## block packages from being installed + { \ + echo 'Package: libjpeg*'; \ + echo 'Pin: release *'; \ + echo 'Pin-Priority: -1'; \ + } > /etc/apt/preferences.d/no-libjpeg; \ { \ echo 'Package: libtiff*'; \ echo 'Pin: release *'; \ @@ -23,18 +29,20 @@ RUN set -xe; \ ARG IMAGICK_RUNTIME_REQUIREMENTS="libpng16-16 liblcms2-2 libgomp1 libltdl7 bzip2 gosu brotli" ARG IMAGICK_RUNTIME_REQUIREMENTS_EXTRA="" -ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libjpeg-dev libltdl-dev nasm" +ARG IMAGICK_BUILD_REQUIREMENTS="curl cmake gcc libtool libedit-dev liblcms2-dev build-essential autoconf automake pkg-config libpng-dev libltdl-dev nasm" +ARG IMAGICK_BUILD_REQUIREMENTS_EXTRA="" +ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" ARG MOZJPEG_VERSION="4.1.1" ARG MOZJPEG_EXTRA_CONFIGURE_ARGS="" -ARG TIFF_VERSION="4.6.0" +ARG TIFF_VERSION="4.7.0" ARG TIFF_EXTRA_CONFIGURE_ARGS="" -ARG WEBP_VERSION="1.4.0" +ARG WEBP_VERSION="1.5.0" ARG WEBP_EXTRA_CONFIGURE_ARGS="" -ARG IMAGICK_VERSION="3.7.0" +ARG IMAGICK_VERSION="7.1.1-44" ARG IMAGICK_EXTRA_CONFIGURE_ARGS="" ARG OPENJPEG_VERSION="2.5.3" @@ -56,21 +64,59 @@ RUN docker-package-download -o mozjpeg.tar.gz -s https://github.com/mozilla/mozj cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib -DWITH_JPEG8=true; \ make install prefix=/usr libdir=/usr/lib64; ################################################ +## install tiff +################################################ +WORKDIR /tmp/tiff +RUN docker-package-download -o tiff.tar.gz -s http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz; \ + tar --strip 1 -xzf tiff.tar.gz; \ + ./configure \ + --prefix=/usr \ + ${TIFF_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j"$(nproc)"; \ + make install; +################################################ +## install webp +################################################ +WORKDIR /tmp/libwebp +RUN docker-package-download -o libwebp.tar.gz -s https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz; \ + tar --strip 1 -xzf libwebp.tar.gz; \ + ./configure \ + --prefix=/usr \ + ${WEBP_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j"$(nproc)"; \ + make install; +################################################ ## install openjpeg ################################################ WORKDIR /tmp/openjpeg -RUN docker-package-download -o openjpeg.tar.gz -s https://github.com/uclouvain/openjpeg/releases/download/v${OPENJPEG_VERSION}/openjpeg-v${OPENJPEG_VERSION}-linux-x86_64.tar.gz; \ +RUN docker-package-download -o openjpeg.tar.gz -s https://github.com/uclouvain/openjpeg/archive/refs/tags/v${OPENJPEG_VERSION}.tar.gz; \ tar --strip 1 -xzf openjpeg.tar.gz; \ mkdir build; WORKDIR /tmp/openjpeg/build RUN cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr; \ make -j"$(nproc)"; \ - make install; \ - make clean; \ + make install; ################################################ ## install imagick ################################################ -# hadolint ignore=DL3008 -RUN apt-get update && \ - apt-get install -y imagemagick libmagickwand-dev; \ +WORKDIR /tmp/imagemagick +RUN docker-package-download -o imagemagick.tar.gz -s https://github.com/ImageMagick/ImageMagick/archive/refs/tags/${IMAGICK_VERSION}.tar.gz; \ + tar --strip 1 -xzf imagemagick.tar.gz; \ + ./configure \ + --prefix=/usr \ + --with-webp \ + --without-perl \ + --without-x \ + --without-xml \ + --without-pango \ + --without-jbig \ + --without-wmf \ + --with-perl=no \ + --with-modules \ + ${IMAGICK_EXTRA_CONFIGURE_ARGS:-} \ + ; \ + make -j"$(nproc)"; \ + make install; \ /usr/local/bin/docker-layer-clean