RUN set -ex \
&& apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS imagemagick-dev libtool \
&& export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" \
&& pecl install imagick-3.4.3 \
&& docker-php-ext-enable imagick \
&& apk add --no-cache --virtual .imagick-runtime-deps imagemagick \
&& apk del .phpize-deps
Last active
August 5, 2024 06:22
-
-
Save johndatserakis/825a16a7f3cef4e8b4dbfbb1e80b9f9c to your computer and use it in GitHub Desktop.
Install imagick In Docker FROM php:7.1-fpm-alpine
To install and build the imagemagick
extension, the Dockerfile
contents are as follows:
FROM php:7.1-fpm-alpine
RUN set -ex && \
apk add --no-cache --virtual .build-deps \
libxml2-dev \
shadow \
autoconf \
g++ \
make \
&& apk add --no-cache imagemagick-dev imagemagick libjpeg-turbo libgomp freetype-dev \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& apk del .build-deps
CMD ["php-fpm"]
Super helpful. Thank you.
I found that uninstalling gcc
broke imagick with PHP Warning: PHP Startup: Unable to load dynamic library 'imagick'
though.
I ended up using this:
# Needed by phpize and imagick. These can be removed. Same thing as 'imagemagick-dev $PHPIZE_DEPS', but without gcc
apk add --no-cache --virtual .build-deps imagemagick-dev autoconf dpkg-dev file g++ libc-dev make pkgconf re2c
# Needed by phpize and imagick. Cannot remove these.
apk add --no-cache imagemagick gcc
printf "\n" | pecl install imagick
docker-php-ext-enable imagick
php -v
php -m
apk del .build-deps
I found that uninstalling
gcc
broke imagick
I don't think imagick needs gcc. I think the problem is that when you uninstall gcc, apk will also uninstall other system libraries that are required by imagick.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Just a side note: I recently added Alpine support to my
install-php-extensions
script: you can easily install theimagick
PHP extension (as well as many other extensions) on Alpine & Debian by running: