github.com/anchore/syft@v1.38.2/syft/pkg/cataloger/php/test-fixtures/image-extensions/Dockerfile (about) 1 # source https://github.com/nextcloud/docker/blob/master/30/fpm-alpine/Dockerfile#L1 2 FROM --platform=linux/amd64 php:8.3.27-fpm-alpine3.21 AS builder 3 4 # entrypoint.sh and cron.sh dependencies 5 RUN set -ex; \ 6 \ 7 apk add --no-cache \ 8 imagemagick \ 9 imagemagick-pdf \ 10 imagemagick-jpeg \ 11 imagemagick-raw \ 12 imagemagick-tiff \ 13 imagemagick-heic \ 14 imagemagick-webp \ 15 imagemagick-svg \ 16 rsync \ 17 ; \ 18 \ 19 rm /var/spool/cron/crontabs/root; \ 20 echo '*/5 * * * * php -f /var/www/html/cron.php' > /var/spool/cron/crontabs/www-data 21 22 # install the PHP extensions we need 23 # see https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html 24 RUN set -ex; \ 25 \ 26 apk add --no-cache --virtual .build-deps \ 27 $PHPIZE_DEPS \ 28 autoconf \ 29 freetype-dev \ 30 gmp-dev \ 31 icu-dev \ 32 imagemagick-dev \ 33 libevent-dev \ 34 libjpeg-turbo-dev \ 35 libmcrypt-dev \ 36 libmemcached-dev \ 37 libpng-dev \ 38 libwebp-dev \ 39 libxml2-dev \ 40 libzip-dev \ 41 openldap-dev \ 42 pcre-dev \ 43 postgresql-dev \ 44 ; \ 45 \ 46 docker-php-ext-configure ftp --with-openssl-dir=/usr; \ 47 docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp; \ 48 docker-php-ext-configure ldap; \ 49 docker-php-ext-install -j "$(nproc)" \ 50 bcmath \ 51 exif \ 52 ftp \ 53 gd \ 54 gmp \ 55 intl \ 56 ldap \ 57 opcache \ 58 pcntl \ 59 pdo_mysql \ 60 pdo_pgsql \ 61 sysvsem \ 62 zip \ 63 ; \ 64 \ 65 # pecl will claim success even if one install fails, so we need to perform each install separately 66 pecl install APCu-5.1.24; \ 67 pecl install igbinary-3.2.16; \ 68 pecl install imagick-3.8.0; \ 69 pecl install memcached-3.3.0 \ 70 --configureoptions 'enable-memcached-igbinary="yes"'; \ 71 pecl install redis-6.2.0 \ 72 --configureoptions 'enable-redis-igbinary="yes" enable-redis-zstd="yes" enable-redis-lz4="yes"'; \ 73 \ 74 docker-php-ext-enable \ 75 apcu \ 76 igbinary \ 77 imagick \ 78 memcached \ 79 redis \ 80 ; \ 81 rm -r /tmp/pear; \ 82 \ 83 runDeps="$( \ 84 scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ 85 | tr ',' '\n' \ 86 | sort -u \ 87 | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ 88 )"; \ 89 apk add --no-network --virtual .nextcloud-phpext-rundeps $runDeps; \ 90 apk del --no-network .build-deps 91 92 FROM busybox:latest 93 94 # interpreters + process manager 95 COPY --from=builder /usr/local/sbin/php-fpm /usr/local/sbin/php-fpm 96 COPY --from=builder /usr/local/bin/php /usr/local/bin/php 97 98 # extensions 99 COPY --from=builder /usr/local/lib/php/extensions /usr/local/lib/php/extensions 100 101 # configs 102 COPY --from=builder /usr/local/etc/php-fpm.conf /usr/local/etc/php-fpm.conf 103 COPY --from=builder /usr/local/etc/php/conf.d /usr/local/etc/php/conf.d 104 COPY --from=builder /usr/local/etc/php-fpm.d /usr/local/etc/php-fpm.d 105 COPY --from=builder /usr/local/etc/php-fpm.conf /usr/local/etc/php-fpm.conf