Skip to content

Commit 3c50fed

Browse files
committed
Fix Imagick
1 parent 7c58ec3 commit 3c50fed

File tree

1 file changed

+8
-20
lines changed

1 file changed

+8
-20
lines changed

layers/imagick/Dockerfile

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,20 @@ ENV IMAGICK_VERSION="7.1.1-38"
77
ENV AOM_VERSION="3.10.0"
88
ENV LIBHEIF_VERSION="1.19.3"
99
ENV LIBDE265_VERSION="1.0.15"
10-
ENV LIBWEBP_VERSION="1.4.0"
1110
ENV GS_VERSION="9.56.1"
1211
ENV IMAGICK_EXT_COMMIT="28f27044e435a2b203e32675e942eb8de620ee58"
1312

1413
# Prepare environment
1514
ENV IMAGICK_BUILD_DIR=${BUILD_DIR}/imagick
1615
RUN mkdir -p ${IMAGICK_BUILD_DIR}
1716
WORKDIR ${IMAGICK_BUILD_DIR}
18-
RUN LD_LIBRARY_PATH= yum -y install libpng-devel libjpeg-devel lcms2-devel ImageMagick-devel nasm gcc10 gcc10-c++
19-
20-
# Use gcc10 as the default compiler, needed for AOM
21-
ENV CXX="/usr/bin/gcc10-g++"
22-
ENV CC="/usr/bin/gcc10-gcc"
23-
24-
# Compile libwebp since AL2 ships with v0.3, and v0.4 or higher is required to builder the other libs
25-
RUN curl -Ls -o libwebp.tar.gz https://github.com/webmproject/libwebp/archive/refs/tags/v${LIBWEBP_VERSION}.tar.gz && tar xzf libwebp.tar.gz && rm libwebp.tar.gz \
26-
&& cd ${IMAGICK_BUILD_DIR}/libwebp-${LIBWEBP_VERSION} \
27-
&& autoreconf -i && automake && autoconf \
28-
&& ./configure --prefix ${INSTALL_DIR} --exec-prefix ${INSTALL_DIR} \
29-
&& make -j $(nproc) && make install && rm -rf ${IMAGICK_BUILD_DIR}/libwebp-${LIBWEBP_VERSION}
17+
RUN LD_LIBRARY_PATH= dnf -y install libpng-devel libjpeg-devel lcms2-devel libwebp-devel nasm cmake
3018

3119
# Compile AOM (libavif dependency for AVIF support)
32-
RUN git clone -b v${AOM_VERSION} --depth 1 https://aomedia.googlesource.com/aom \
20+
RUN curl -Ls -o aom.tar.gz https://storage.googleapis.com/aom-releases/libaom-${AOM_VERSION}.tar.gz && tar xzf aom.tar.gz && rm aom.tar.gz \
3321
&& mkdir -p ${IMAGICK_BUILD_DIR}/aom_build && cd ${IMAGICK_BUILD_DIR}/aom_build \
34-
&& cmake ../aom -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 \
35-
&& make -j $(nproc) && make install && rm -rf ${IMAGICK_BUILD_DIR}/aom && rm -rf ${IMAGICK_BUILD_DIR}/aom_build
22+
&& cmake ../libaom-${AOM_VERSION} -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DBUILD_SHARED_LIBS=1 -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 \
23+
&& make -j $(nproc) && make install && rm -rf ${IMAGICK_BUILD_DIR}/libaom-${AOM_VERSION} && rm -rf ${IMAGICK_BUILD_DIR}/aom_build
3624

3725
# Compile libde265 (libheif dependency)
3826
RUN curl -Ls -o libde265.tar.gz https://github.com/strukturag/libde265/releases/download/v${LIBDE265_VERSION}/libde265-${LIBDE265_VERSION}.tar.gz && tar xzf libde265.tar.gz && rm libde265.tar.gz \
@@ -46,21 +34,21 @@ RUN curl -Ls -o libheif.tar.gz https://github.com/strukturag/libheif/releases/do
4634
&& cmake --preset=release-noplugins .. -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
4735
&& make -j $(nproc) && make install && rm -rf ${IMAGICK_BUILD_DIR}/libheif-${LIBHEIF_VERSION}
4836

49-
# Compile gs
37+
# Compile ghostscript from source (the system package requires too many runtime files)
5038
RUN curl -Ls -o ghostscript.tar.gz https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9561/ghostscript-${GS_VERSION}.tar.gz && tar xzf ghostscript.tar.gz && rm ghostscript.tar.gz \
5139
&& mkdir -p ${IMAGICK_BUILD_DIR}/ghostscript-${GS_VERSION} && cd ${IMAGICK_BUILD_DIR}/ghostscript-${GS_VERSION} \
5240
&& ./configure --prefix ${INSTALL_DIR} --exec-prefix ${INSTALL_DIR} --without-x \
5341
&& make -j $(nproc) && cp bin/gs /tmp/gs && rm -rf ${IMAGICK_BUILD_DIR}/ghostscript-${GS_VERSION}
5442

55-
# Compile the ImageMagick library
43+
# Compile the ImageMagick library (AL2023 only has v6, we need v7)
5644
RUN curl -Ls -o ImageMagick.tar.gz https://github.com/ImageMagick/ImageMagick/archive/refs/tags/${IMAGICK_VERSION}.tar.gz && tar xzf ImageMagick.tar.gz && rm ImageMagick.tar.gz \
5745
&& cd ${IMAGICK_BUILD_DIR}/ImageMagick-${IMAGICK_VERSION} \
5846
&& ./configure --prefix ${INSTALL_DIR} --exec-prefix ${INSTALL_DIR} --with-webp --with-heic --disable-static --with-freetype=yes \
5947
&& make -j $(nproc) && make install && rm -rf ${IMAGICK_BUILD_DIR}/ImageMagick-${IMAGICK_VERSION} && convert -list configure
6048

6149
# Compile the php imagick extension and copy the dependencies
62-
RUN git clone https://github.com/Imagick/imagick && cd imagick \
63-
&&git reset --hard ${IMAGICK_EXT_COMMIT} \
50+
RUN curl -Ls -o imagick.tar.gz https://github.com/Imagick/imagick/archive/${IMAGICK_EXT_COMMIT}.tar.gz && tar xzf imagick.tar.gz && rm imagick.tar.gz \
51+
&& cd imagick-${IMAGICK_EXT_COMMIT} \
6452
&& phpize && ./configure --with-imagick=${INSTALL_DIR} \
6553
&& make -j $(nproc) && make install && cp `php-config --extension-dir`/imagick.so /tmp/imagick.so && strip --strip-debug /tmp/imagick.so && echo 'extension=imagick.so' > /tmp/ext.ini \
6654
&& php /bref/lib-copy/copy-dependencies.php /tmp/imagick.so /tmp/extension-libs

0 commit comments

Comments
 (0)