Browse Source

[PHP] Polish dockerfile

includes also #4839 because of --with-avif for gd configure command (is not available in 8.0)

contains the following adjustments:
- upgrade APCu to 5.1.22
- use PECL package for mailparse instead of git clone (3.1.4 is the latest one available and sice then no changes on master branch)
- split PECL commands into separate ones (according to https://hub.docker.com/_/php this is the recommended way)
- add missing configure options for gd extension to include webp, xpm and avif
- specify composer version to be installed
- cleanup more dev dependencies
Michael Cramer 2 years ago
parent
commit
bc937ed2db
1 changed files with 24 additions and 10 deletions
  1. 24 10
      data/Dockerfiles/phpfpm/Dockerfile

+ 24 - 10
data/Dockerfiles/phpfpm/Dockerfile

@@ -1,12 +1,12 @@
 FROM php:8.1-fpm-alpine3.16
 FROM php:8.1-fpm-alpine3.16
 LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
 LABEL maintainer "Andre Peters <andre.peters@servercow.de>"
 
 
-ENV APCU_PECL 5.1.21
+ENV APCU_PECL 5.1.22
 ENV IMAGICK_PECL 3.7.0
 ENV IMAGICK_PECL 3.7.0
-# Mailparse is pulled from master branch
-#ENV MAILPARSE_PECL 3.0.2
+ENV MAILPARSE_PECL 3.1.4
 ENV MEMCACHED_PECL 3.2.0
 ENV MEMCACHED_PECL 3.2.0
 ENV REDIS_PECL 5.3.7
 ENV REDIS_PECL 5.3.7
+ENV COMPOSER 2.4.4
 
 
 RUN apk add -U --no-cache autoconf \
 RUN apk add -U --no-cache autoconf \
   aspell-dev \
   aspell-dev \
@@ -18,6 +18,7 @@ RUN apk add -U --no-cache autoconf \
   freetype-dev \
   freetype-dev \
   g++ \
   g++ \
   git \
   git \
+  gettext \
   gettext-dev \
   gettext-dev \
   gmp-dev \
   gmp-dev \
   gnupg \
   gnupg \
@@ -27,8 +28,11 @@ RUN apk add -U --no-cache autoconf \
   imagemagick-dev \
   imagemagick-dev \
   imap-dev \
   imap-dev \
   jq \
   jq \
+  libavif \
+  libavif-dev \
   libjpeg-turbo \
   libjpeg-turbo \
   libjpeg-turbo-dev \
   libjpeg-turbo-dev \
+  libmemcached \
   libmemcached-dev \
   libmemcached-dev \
   libpng \
   libpng \
   libpng-dev \
   libpng-dev \
@@ -38,7 +42,9 @@ RUN apk add -U --no-cache autoconf \
   libtool \
   libtool \
   libwebp-dev \
   libwebp-dev \
   libxml2-dev \
   libxml2-dev \
+  libxpm \
   libxpm-dev \
   libxpm-dev \
+  libzip \
   libzip-dev \
   libzip-dev \
   make \
   make \
   mysql-client \
   mysql-client \
@@ -49,22 +55,24 @@ RUN apk add -U --no-cache autoconf \
   samba-client \
   samba-client \
   zlib-dev \
   zlib-dev \
   tzdata \
   tzdata \
-  && git clone https://github.com/php/pecl-mail-mailparse \
-  && cd pecl-mail-mailparse \
-  && pecl install package.xml \
-  && cd .. \
-  && rm -r pecl-mail-mailparse \
-  && pecl install redis-${REDIS_PECL} memcached-${MEMCACHED_PECL} APCu-${APCU_PECL} imagick-${IMAGICK_PECL} \
+  && pecl install mailparse-${MAILPARSE_PECL} \
+  && pecl install redis-${REDIS_PECL} \
+  && pecl install memcached-${MEMCACHED_PECL} \
+  && pecl install APCu-${APCU_PECL} \
+  && pecl install imagick-${IMAGICK_PECL} \
   && docker-php-ext-enable apcu imagick memcached mailparse redis \
   && docker-php-ext-enable apcu imagick memcached mailparse redis \
   && pecl clear-cache \
   && pecl clear-cache \
   && docker-php-ext-configure intl \
   && docker-php-ext-configure intl \
   && docker-php-ext-configure exif \
   && docker-php-ext-configure exif \
   && docker-php-ext-configure gd --with-freetype=/usr/include/ \  
   && docker-php-ext-configure gd --with-freetype=/usr/include/ \  
     --with-jpeg=/usr/include/ \
     --with-jpeg=/usr/include/ \
+    --with-webp \
+    --with-xpm \
+    --with-avif \
   && docker-php-ext-install -j 4 exif gd gettext intl ldap opcache pcntl pdo pdo_mysql pspell soap sockets zip bcmath gmp \
   && docker-php-ext-install -j 4 exif gd gettext intl ldap opcache pcntl pdo pdo_mysql pspell soap sockets zip bcmath gmp \
   && docker-php-ext-configure imap --with-imap --with-imap-ssl \
   && docker-php-ext-configure imap --with-imap --with-imap-ssl \
   && docker-php-ext-install -j 4 imap \
   && docker-php-ext-install -j 4 imap \
-  && curl --silent --show-error https://getcomposer.org/installer | php \
+  && curl --silent --show-error https://getcomposer.org/installer | php -- --version=${COMPOSER} \
   && mv composer.phar /usr/local/bin/composer \
   && mv composer.phar /usr/local/bin/composer \
   && chmod +x /usr/local/bin/composer \
   && chmod +x /usr/local/bin/composer \
   && apk del --purge autoconf \
   && apk del --purge autoconf \
@@ -72,15 +80,21 @@ RUN apk add -U --no-cache autoconf \
     cyrus-sasl-dev \
     cyrus-sasl-dev \
     freetype-dev \
     freetype-dev \
     g++ \
     g++ \
+    gettext-dev \
     icu-dev \
     icu-dev \
     imagemagick-dev \
     imagemagick-dev \
     imap-dev \
     imap-dev \
+    libavif-dev \
     libjpeg-turbo-dev \
     libjpeg-turbo-dev \
+    libmemcached-dev \
     libpng-dev \
     libpng-dev \
     libressl-dev \
     libressl-dev \
     libwebp-dev \
     libwebp-dev \
     libxml2-dev \
     libxml2-dev \
+    libxpm-dev \
+    libzip-dev \
     make \
     make \
+    openldap-dev \
     pcre-dev \
     pcre-dev \
     zlib-dev
     zlib-dev