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