diff --git a/Dockerfiles/base/Dockerfile-5.2 b/Dockerfiles/base/Dockerfile-5.2 index bf313f4..2b84a61 100644 --- a/Dockerfiles/base/Dockerfile-5.2 +++ b/Dockerfiles/base/Dockerfile-5.2 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.2 Image" \ - image="devilbox/php-fpm" \ - tag="5.2-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.2-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-base" ### diff --git a/Dockerfiles/base/Dockerfile-5.3 b/Dockerfiles/base/Dockerfile-5.3 index 8d269f6..f6358ea 100644 --- a/Dockerfiles/base/Dockerfile-5.3 +++ b/Dockerfiles/base/Dockerfile-5.3 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.3 Image" \ - image="devilbox/php-fpm" \ - tag="5.3-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.3-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-base" ### diff --git a/Dockerfiles/base/Dockerfile-5.4 b/Dockerfiles/base/Dockerfile-5.4 index 4b3aef5..d9ebc27 100644 --- a/Dockerfiles/base/Dockerfile-5.4 +++ b/Dockerfiles/base/Dockerfile-5.4 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.4 Image" \ - image="devilbox/php-fpm" \ - tag="5.4-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.4-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-base" ### diff --git a/Dockerfiles/base/Dockerfile-5.5 b/Dockerfiles/base/Dockerfile-5.5 index 3c2c829..802a0fe 100644 --- a/Dockerfiles/base/Dockerfile-5.5 +++ b/Dockerfiles/base/Dockerfile-5.5 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.5 Image" \ - image="devilbox/php-fpm" \ - tag="5.5-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.5-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-base" ### diff --git a/Dockerfiles/base/Dockerfile-5.6 b/Dockerfiles/base/Dockerfile-5.6 index 6dd7569..46ee287 100644 --- a/Dockerfiles/base/Dockerfile-5.6 +++ b/Dockerfiles/base/Dockerfile-5.6 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.6 Image" \ - image="devilbox/php-fpm" \ - tag="5.6-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.6-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-base" ### diff --git a/Dockerfiles/base/Dockerfile-7.0 b/Dockerfiles/base/Dockerfile-7.0 index e659a66..d2c48de 100644 --- a/Dockerfiles/base/Dockerfile-7.0 +++ b/Dockerfiles/base/Dockerfile-7.0 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.0 Image" \ - image="devilbox/php-fpm" \ - tag="7.0-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.0-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-base" ### diff --git a/Dockerfiles/base/Dockerfile-7.1 b/Dockerfiles/base/Dockerfile-7.1 index 131247a..49ccb98 100644 --- a/Dockerfiles/base/Dockerfile-7.1 +++ b/Dockerfiles/base/Dockerfile-7.1 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.1 Image" \ - image="devilbox/php-fpm" \ - tag="7.1-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.1-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-base" ### diff --git a/Dockerfiles/base/Dockerfile-7.2 b/Dockerfiles/base/Dockerfile-7.2 index 934fc03..efadfc2 100644 --- a/Dockerfiles/base/Dockerfile-7.2 +++ b/Dockerfiles/base/Dockerfile-7.2 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.2 Image" \ - image="devilbox/php-fpm" \ - tag="7.2-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.2-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-base" ### diff --git a/Dockerfiles/base/Dockerfile-7.3 b/Dockerfiles/base/Dockerfile-7.3 index ef741ae..44925ea 100644 --- a/Dockerfiles/base/Dockerfile-7.3 +++ b/Dockerfiles/base/Dockerfile-7.3 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.3 Image" \ - image="devilbox/php-fpm" \ - tag="7.3-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.3-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-base" ### diff --git a/Dockerfiles/base/Dockerfile-7.4 b/Dockerfiles/base/Dockerfile-7.4 index 384e0e0..6088a1a 100644 --- a/Dockerfiles/base/Dockerfile-7.4 +++ b/Dockerfiles/base/Dockerfile-7.4 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.4 Image" \ - image="devilbox/php-fpm" \ - tag="7.4-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.4-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-base" ### diff --git a/Dockerfiles/base/Dockerfile-8.0 b/Dockerfiles/base/Dockerfile-8.0 index 9dcd88a..51c9a31 100644 --- a/Dockerfiles/base/Dockerfile-8.0 +++ b/Dockerfiles/base/Dockerfile-8.0 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 8.0 Image" \ - image="devilbox/php-fpm" \ - tag="8.0-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="8.0-base" +LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-base" +LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-base" ### diff --git a/Dockerfiles/mods/Dockerfile-5.2 b/Dockerfiles/mods/Dockerfile-5.2 index 0903f5d..c9d6669 100644 --- a/Dockerfiles/mods/Dockerfile-5.2 +++ b/Dockerfiles/mods/Dockerfile-5.2 @@ -1,60 +1,575 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:5.2-base -MAINTAINER "cytopia" +FROM devilbox/php-fpm:5.2-base as builder +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + firebird-dev \ + freetds-dev \ + libbz2-dev \ + libc-client-dev \ + libcurl4-openssl-dev \ + libenchant-dev \ + libevent-dev \ + libfbclient2 \ + libfreetype6-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libkrb5-dev \ + libldap2-dev \ + libmagic-dev \ + libmcrypt-dev \ + libmemcached-dev \ + libpcre3-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + librabbitmq-dev \ + librecode-dev \ + libsasl2-dev \ + libsnmp-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + snmp \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_5.2.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + +# -------------------- Installing PHP Extension: amqp -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install amqp-1.4.0 \ + # Enabling + && docker-php-ext-enable amqp \ + && true + + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && true + + +# -------------------- Installing PHP Extension: enchant -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Custom: Pecl command + && echo "/usr" | pecl install enchant \ + # Enabling + && docker-php-ext-enable enchant \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && true + + +# -------------------- Installing PHP Extension: fileinfo -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install fileinfo \ + # Enabling + && docker-php-ext-enable fileinfo \ + && true + + +# -------------------- Installing PHP Extension: ftp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ftp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Version specific pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libjpeg.* /usr/lib/ && \ +ln -s /usr/lib/x86_64-linux-gnu/libpng.* /usr/lib/ && \ +ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && \ +mkdir /usr/include/freetype2/freetype && \ +ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ + \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && true + + +# -------------------- Installing PHP Extension: igbinary -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install igbinary-2.0.7 \ + # Enabling + && docker-php-ext-enable igbinary \ + && true + + +# -------------------- Installing PHP Extension: imap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ + && true + + +# -------------------- Installing PHP Extension: interbase -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install intl \ + # Enabling + && docker-php-ext-enable intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ + && true + + +# -------------------- Installing PHP Extension: mcrypt -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && true + + +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack-0.5.7 \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + +# -------------------- Installing PHP Extension: memcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install memcache \ + # Enabling + && docker-php-ext-enable memcache \ + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install memcached-2.1.0 \ + # Enabling + && docker-php-ext-enable memcached \ + && true + + +# -------------------- Installing PHP Extension: mongo -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Custom: Pecl command + && yes | pecl install mongo-1.5.8 \ + # Enabling + && docker-php-ext-enable mongo \ + && true + + +# -------------------- Installing PHP Extension: oauth -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install oauth-1.2.3 \ + # Enabling + && docker-php-ext-enable oauth \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Custom: Pecl command + && pecl install zendopcache \ + # Enabling + && docker-php-ext-enable opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && true + + +# -------------------- Installing PHP Extension: phar -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install phar \ + # Enabling + && docker-php-ext-enable phar \ + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install redis-2.2.7 \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install uploadprogress \ + # Enabling + && docker-php-ext-enable uploadprogress \ + && true + + +# -------------------- Installing PHP Extension: wddx -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && true + + +# -------------------- Installing PHP Extension: xdebug -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install xdebug-2.2.7 \ + # Enabling + && docker-php-ext-enable xdebug \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ + && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:5.2-base as final +MAINTAINER "cytopia" + ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.2 Image" \ - image="devilbox/php-fpm" \ - tag="5.2-mods" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.2-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-mods" ### -### Envs +### Copy artifacts from builder ### -ENV BUILD_DEPS \ - firebird-dev \ - freetds-dev \ - libbz2-dev \ - libc-client-dev \ - libcurl4-openssl-dev \ - libenchant-dev \ - libevent-dev \ - libfbclient2 \ - libfreetype6-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libkrb5-dev \ - libldap2-dev \ - libmagic-dev \ - libmcrypt-dev \ - libmemcached-dev \ - libpcre3-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librabbitmq-dev \ - librecode-dev \ - libsasl2-dev \ - libsnmp-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - snmp \ - zlib1g-dev \ - ca-certificates \ - git +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ -ENV RUN_DEPS \ + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libaspell15 \ libc-client2007e \ libenchant1c2a \ @@ -75,313 +590,19 @@ ENV RUN_DEPS \ libxpm4 \ libxslt1.1 \ snmp \ - ca-certificates - - -### -### Install -### -RUN set -x \ - && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: ioncube ---- - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_5.2.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && (rm -rf /usr/local/lib/php/test/ioncube || true) \ - && (rm -rf /usr/local/lib/php/doc/ioncube || true) \ - \ -# ---- Installing PHP Extension: amqp ---- - && pecl install amqp-1.4.0 \ - && docker-php-ext-enable amqp \ - && (rm -rf /usr/local/lib/php/test/amqp || true) \ - && (rm -rf /usr/local/lib/php/doc/amqp || true) \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: enchant ---- - && echo "/usr" | pecl install enchant \ - && docker-php-ext-enable enchant \ - && (rm -rf /usr/local/lib/php/test/enchant || true) \ - && (rm -rf /usr/local/lib/php/doc/enchant || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: fileinfo ---- - && pecl install fileinfo \ - && docker-php-ext-enable fileinfo \ - && (rm -rf /usr/local/lib/php/test/fileinfo || true) \ - && (rm -rf /usr/local/lib/php/doc/fileinfo || true) \ - \ -# ---- Installing PHP Extension: ftp ---- - && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ - && (rm -rf /usr/local/lib/php/test/ftp || true) \ - && (rm -rf /usr/local/lib/php/doc/ftp || true) \ - \ -# ---- Installing PHP Extension: gd ---- - && ln -s /usr/lib/x86_64-linux-gnu/libjpeg.* /usr/lib/ && \ -ln -s /usr/lib/x86_64-linux-gnu/libpng.* /usr/lib/ && \ -ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && \ -mkdir /usr/include/freetype2/freetype && \ -ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ - \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: igbinary ---- - && pecl install igbinary-2.0.7 \ - && docker-php-ext-enable igbinary \ - && (rm -rf /usr/local/lib/php/test/igbinary || true) \ - && (rm -rf /usr/local/lib/php/doc/igbinary || true) \ - \ -# ---- Installing PHP Extension: imap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ - && (rm -rf /usr/local/lib/php/test/imap || true) \ - && (rm -rf /usr/local/lib/php/doc/imap || true) \ - \ -# ---- Installing PHP Extension: interbase ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && (rm -rf /usr/local/lib/php/test/interbase || true) \ - && (rm -rf /usr/local/lib/php/doc/interbase || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && pecl install intl \ - && docker-php-ext-enable intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: mcrypt ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - && (rm -rf /usr/local/lib/php/test/mcrypt || true) \ - && (rm -rf /usr/local/lib/php/doc/mcrypt || true) \ - \ -# ---- Installing PHP Extension: msgpack ---- - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - && (rm -rf /usr/local/lib/php/test/msgpack || true) \ - && (rm -rf /usr/local/lib/php/doc/msgpack || true) \ - \ -# ---- Installing PHP Extension: memcache ---- - && pecl install memcache \ - && docker-php-ext-enable memcache \ - && (rm -rf /usr/local/lib/php/test/memcache || true) \ - && (rm -rf /usr/local/lib/php/doc/memcache || true) \ - \ -# ---- Installing PHP Extension: memcached ---- - && pecl install memcached-2.1.0 \ - && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongo ---- - && yes | pecl install mongo-1.5.8 \ - && docker-php-ext-enable mongo \ - && (rm -rf /usr/local/lib/php/test/mongo || true) \ - && (rm -rf /usr/local/lib/php/doc/mongo || true) \ - \ -# ---- Installing PHP Extension: oauth ---- - && pecl install oauth-1.2.3 \ - && docker-php-ext-enable oauth \ - && (rm -rf /usr/local/lib/php/test/oauth || true) \ - && (rm -rf /usr/local/lib/php/doc/oauth || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && pecl install zendopcache \ - && docker-php-ext-enable opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- - && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: phar ---- - && pecl install phar \ - && docker-php-ext-enable phar \ - && (rm -rf /usr/local/lib/php/test/phar || true) \ - && (rm -rf /usr/local/lib/php/doc/phar || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: recode ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && (rm -rf /usr/local/lib/php/test/recode || true) \ - && (rm -rf /usr/local/lib/php/doc/recode || true) \ - \ -# ---- Installing PHP Extension: redis ---- - && pecl install redis-2.2.7 \ - && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: wddx ---- - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - && (rm -rf /usr/local/lib/php/test/wddx || true) \ - && (rm -rf /usr/local/lib/php/doc/wddx || true) \ - \ -# ---- Installing PHP Extension: xdebug ---- - && pecl install xdebug-2.2.7 \ - && docker-php-ext-enable xdebug \ - && (rm -rf /usr/local/lib/php/test/xdebug || true) \ - && (rm -rf /usr/local/lib/php/doc/xdebug || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ + ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ - && update-ca-certificates \ - \ - && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + && update-ca-certificates +### +### Post Install +### ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.2' \ && /usr/local/sbin/php-fpm --test \ diff --git a/Dockerfiles/mods/Dockerfile-5.3 b/Dockerfiles/mods/Dockerfile-5.3 index 6968ec6..c746398 100644 --- a/Dockerfiles/mods/Dockerfile-5.3 +++ b/Dockerfiles/mods/Dockerfile-5.3 @@ -1,64 +1,686 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:5.3-base -MAINTAINER "cytopia" +FROM devilbox/php-fpm:5.3-base as builder +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + alien \ + firebird-dev \ + freetds-dev \ + libaio-dev \ + libbz2-dev \ + libc-client-dev \ + libcurl4-openssl-dev \ + libenchant-dev \ + libevent-dev \ + libfbclient2 \ + libfreetype6-dev \ + libgmp-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libkrb5-dev \ + libldap2-dev \ + libmagickwand-dev \ + libmcrypt-dev \ + libmemcached-dev \ + libnghttp2-dev \ + libpcre3-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + librabbitmq-dev \ + librdkafka-dev \ + libsasl2-dev \ + libsnmp-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + snmp \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_5.3.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + +# -------------------- Installing PHP Extension: amqp -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install amqp-1.9.3 \ + # Enabling + && docker-php-ext-enable amqp \ + && true + + +# -------------------- Installing PHP Extension: apcu -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install apcu-4.0.11 \ + # Enabling + && docker-php-ext-enable apcu \ + && true + + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && true + + +# -------------------- Installing PHP Extension: enchant -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && true + + +# -------------------- Installing PHP Extension: ftp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ftp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Version specific pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && mkdir /usr/include/freetype2/freetype && ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && true + + +# -------------------- Installing PHP Extension: gmp -------------------- +RUN set -eux \ + # Generic pre-command + && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ + && true + + +# -------------------- Installing PHP Extension: igbinary -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install igbinary-2.0.8 \ + # Enabling + && docker-php-ext-enable igbinary \ + && true + + +# -------------------- Installing PHP Extension: imagick -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install imagick-3.3.0 \ + # Enabling + && docker-php-ext-enable imagick \ + && true + + +# -------------------- Installing PHP Extension: imap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ + && true + + +# -------------------- Installing PHP Extension: interbase -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ + && true + + +# -------------------- Installing PHP Extension: mbstring -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ + && true + + +# -------------------- Installing PHP Extension: mcrypt -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && true + + +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack-0.5.7 \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + +# -------------------- Installing PHP Extension: memcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install memcache \ + # Enabling + && docker-php-ext-enable memcache \ + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install memcached-2.2.0 \ + # Enabling + && docker-php-ext-enable memcached \ + && true + + +# -------------------- Installing PHP Extension: mongo -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Custom: Pecl command + && yes | pecl install mongo \ + # Enabling + && docker-php-ext-enable mongo \ + && true + + +# -------------------- Installing PHP Extension: mongodb -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install mongodb-0.6.3 \ + # Enabling + && docker-php-ext-enable mongodb \ + && true + + +# -------------------- Installing PHP Extension: mysqli -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && true + + +# -------------------- Installing PHP Extension: oauth -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install oauth-1.2.3 \ + # Enabling + && docker-php-ext-enable oauth \ + && true + + +# -------------------- Installing PHP Extension: oci8 -------------------- +RUN set -eux \ + # Generic pre-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +\ +&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ + # Generic post-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Custom: Pecl command + && pecl install zendopcache \ + # Enabling + && docker-php-ext-enable opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && true + + +# -------------------- Installing PHP Extension: phalcon -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + # Custom: Branch + && git checkout phalcon-v2.0.9 \ + # Custom: Install command + && cd build && ./install >/dev/null \ + # Enabling + && docker-php-ext-enable phalcon \ + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install redis-4.3.0 \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: rdkafka -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install rdkafka-3.0.5 \ + # Enabling + && docker-php-ext-enable rdkafka \ + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ + && true + + +# -------------------- Installing PHP Extension: soap -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure soap --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-1.9.23 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install uploadprogress \ + # Enabling + && docker-php-ext-enable uploadprogress \ + && true + + +# -------------------- Installing PHP Extension: wddx -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && true + + +# -------------------- Installing PHP Extension: xdebug -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install xdebug-2.2.7 \ + # Enabling + && docker-php-ext-enable xdebug \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ + && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:5.3-base as final +MAINTAINER "cytopia" + ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.3 Image" \ - image="devilbox/php-fpm" \ - tag="5.3-mods" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.3-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-mods" ### -### Envs +### Copy artifacts from builder ### -ENV BUILD_DEPS \ - alien \ - firebird-dev \ - freetds-dev \ - libaio-dev \ - libbz2-dev \ - libc-client-dev \ - libcurl4-openssl-dev \ - libenchant-dev \ - libevent-dev \ - libfbclient2 \ - libfreetype6-dev \ - libgmp-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libkrb5-dev \ - libldap2-dev \ - libmagickwand-dev \ - libmcrypt-dev \ - libmemcached-dev \ - libnghttp2-dev \ - libpcre3-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librabbitmq-dev \ - librdkafka-dev \ - libsasl2-dev \ - libsnmp-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - snmp \ - zlib1g-dev \ - ca-certificates \ - git +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ -ENV RUN_DEPS \ + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libaio1 \ libaspell15 \ libc-client2007e \ @@ -83,377 +705,29 @@ ENV RUN_DEPS \ libxpm4 \ libxslt1.1 \ snmp \ - ca-certificates + ca-certificates \ + && rm -rf /var/lib/apt/lists/* \ + \ + && update-ca-certificates ### -### Install +### Post Install ### -RUN set -x \ - && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: ioncube ---- - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_5.3.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && (rm -rf /usr/local/lib/php/test/ioncube || true) \ - && (rm -rf /usr/local/lib/php/doc/ioncube || true) \ - \ -# ---- Installing PHP Extension: amqp ---- - && pecl install amqp-1.9.3 \ - && docker-php-ext-enable amqp \ - && (rm -rf /usr/local/lib/php/test/amqp || true) \ - && (rm -rf /usr/local/lib/php/doc/amqp || true) \ - \ -# ---- Installing PHP Extension: apcu ---- - && pecl install apcu-4.0.11 \ - && docker-php-ext-enable apcu \ - && (rm -rf /usr/local/lib/php/test/apcu || true) \ - && (rm -rf /usr/local/lib/php/doc/apcu || true) \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: enchant ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && (rm -rf /usr/local/lib/php/test/enchant || true) \ - && (rm -rf /usr/local/lib/php/doc/enchant || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: ftp ---- - && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ftp \ - && (rm -rf /usr/local/lib/php/test/ftp || true) \ - && (rm -rf /usr/local/lib/php/doc/ftp || true) \ - \ -# ---- Installing PHP Extension: gd ---- - && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ && mkdir /usr/include/freetype2/freetype && ln -s /usr/include/freetype2/freetype.h /usr/include/freetype2/freetype/freetype.h \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: gmp ---- - && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ - && (rm -rf /usr/local/lib/php/test/gmp || true) \ - && (rm -rf /usr/local/lib/php/doc/gmp || true) \ - \ -# ---- Installing PHP Extension: igbinary ---- - && pecl install igbinary-2.0.8 \ - && docker-php-ext-enable igbinary \ - && (rm -rf /usr/local/lib/php/test/igbinary || true) \ - && (rm -rf /usr/local/lib/php/doc/igbinary || true) \ - \ -# ---- Installing PHP Extension: imagick ---- - && pecl install imagick-3.3.0 \ - && docker-php-ext-enable imagick \ - && (rm -rf /usr/local/lib/php/test/imagick || true) \ - && (rm -rf /usr/local/lib/php/doc/imagick || true) \ - \ -# ---- Installing PHP Extension: imap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ - && (rm -rf /usr/local/lib/php/test/imap || true) \ - && (rm -rf /usr/local/lib/php/doc/imap || true) \ - \ -# ---- Installing PHP Extension: interbase ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && (rm -rf /usr/local/lib/php/test/interbase || true) \ - && (rm -rf /usr/local/lib/php/doc/interbase || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: mbstring ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mbstring \ - && (rm -rf /usr/local/lib/php/test/mbstring || true) \ - && (rm -rf /usr/local/lib/php/doc/mbstring || true) \ - \ -# ---- Installing PHP Extension: mcrypt ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - && (rm -rf /usr/local/lib/php/test/mcrypt || true) \ - && (rm -rf /usr/local/lib/php/doc/mcrypt || true) \ - \ -# ---- Installing PHP Extension: msgpack ---- - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - && (rm -rf /usr/local/lib/php/test/msgpack || true) \ - && (rm -rf /usr/local/lib/php/doc/msgpack || true) \ - \ -# ---- Installing PHP Extension: memcache ---- - && pecl install memcache \ - && docker-php-ext-enable memcache \ - && (rm -rf /usr/local/lib/php/test/memcache || true) \ - && (rm -rf /usr/local/lib/php/doc/memcache || true) \ - \ -# ---- Installing PHP Extension: memcached ---- - && pecl install memcached-2.2.0 \ - && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongo ---- - && yes | pecl install mongo \ - && docker-php-ext-enable mongo \ - && (rm -rf /usr/local/lib/php/test/mongo || true) \ - && (rm -rf /usr/local/lib/php/doc/mongo || true) \ - \ -# ---- Installing PHP Extension: mongodb ---- - && pecl install mongodb-0.6.3 \ - && docker-php-ext-enable mongodb \ - && (rm -rf /usr/local/lib/php/test/mongodb || true) \ - && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ - \ -# ---- Installing PHP Extension: mysqli ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && (rm -rf /usr/local/lib/php/test/mysqli || true) \ - && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ - \ -# ---- Installing PHP Extension: oauth ---- - && pecl install oauth-1.2.3 \ - && docker-php-ext-enable oauth \ - && (rm -rf /usr/local/lib/php/test/oauth || true) \ - && (rm -rf /usr/local/lib/php/doc/oauth || true) \ - \ -# ---- Installing PHP Extension: oci8 ---- +RUN set -eux \ + # ---------- oci8 ---------- && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ -\ -&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ - \ - && /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ - && (rm -rf /usr/local/lib/php/test/oci8 || true) \ - && (rm -rf /usr/local/lib/php/doc/oci8 || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && pecl install zendopcache \ - && docker-php-ext-enable opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- - && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_mysql ---- - && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ - && (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: phalcon ---- - && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - && git checkout phalcon-v2.0.9 \ - && cd build && ./install >/dev/null \ - && docker-php-ext-enable phalcon \ - && (rm -rf /usr/local/lib/php/test/phalcon || true) \ - && (rm -rf /usr/local/lib/php/doc/phalcon || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: redis ---- - && pecl install redis \ - && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: rdkafka ---- - && pecl install rdkafka-3.0.5 \ - && docker-php-ext-enable rdkafka \ - && (rm -rf /usr/local/lib/php/test/rdkafka || true) \ - && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: soap ---- - && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ - && (rm -rf /usr/local/lib/php/test/soap || true) \ - && (rm -rf /usr/local/lib/php/doc/soap || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: swoole ---- - && pecl install swoole-1.9.23 \ - && docker-php-ext-enable swoole \ - && (rm -rf /usr/local/lib/php/test/swoole || true) \ - && (rm -rf /usr/local/lib/php/doc/swoole || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: wddx ---- - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - && (rm -rf /usr/local/lib/php/test/wddx || true) \ - && (rm -rf /usr/local/lib/php/doc/wddx || true) \ - \ -# ---- Installing PHP Extension: xdebug ---- - && pecl install xdebug-2.2.7 \ - && docker-php-ext-enable xdebug \ - && (rm -rf /usr/local/lib/php/test/xdebug || true) \ - && (rm -rf /usr/local/lib/php/doc/xdebug || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ - && rm -rf /var/lib/apt/lists/* \ - \ - && update-ca-certificates \ - \ - && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.3' \ && /usr/local/sbin/php-fpm --test \ diff --git a/Dockerfiles/mods/Dockerfile-5.4 b/Dockerfiles/mods/Dockerfile-5.4 index 92d38e3..95b418c 100644 --- a/Dockerfiles/mods/Dockerfile-5.4 +++ b/Dockerfiles/mods/Dockerfile-5.4 @@ -1,64 +1,694 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:5.4-base -MAINTAINER "cytopia" +FROM devilbox/php-fpm:5.4-base as builder +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + alien \ + firebird-dev \ + freetds-dev \ + libaio-dev \ + libbz2-dev \ + libc-client-dev \ + libcurl4-openssl-dev \ + libenchant-dev \ + libevent-dev \ + libfbclient2 \ + libfreetype6-dev \ + libgmp-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libkrb5-dev \ + libldap2-dev \ + libmagickwand-dev \ + libmcrypt-dev \ + libmemcached-dev \ + libnghttp2-dev \ + libpcre3-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + librabbitmq-dev \ + librdkafka-dev \ + libsasl2-dev \ + libsnmp-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + snmp \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_5.4.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + +# -------------------- Installing PHP Extension: amqp -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install amqp-1.9.3 \ + # Enabling + && docker-php-ext-enable amqp \ + && true + + +# -------------------- Installing PHP Extension: apcu -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install apcu-4.0.11 \ + # Enabling + && docker-php-ext-enable apcu \ + && true + + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install bcmath \ + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install dba \ + && true + + +# -------------------- Installing PHP Extension: enchant -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install enchant \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install exif \ + && true + + +# -------------------- Installing PHP Extension: ftp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ftp --with-openssl-dir \ + && docker-php-ext-install ftp \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Version specific pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ + # Installation + && docker-php-ext-install gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install gettext \ + && true + + +# -------------------- Installing PHP Extension: gmp -------------------- +RUN set -eux \ + # Generic pre-command + && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install gmp \ + && true + + +# -------------------- Installing PHP Extension: igbinary -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install igbinary-2.0.8 \ + # Enabling + && docker-php-ext-enable igbinary \ + && true + + +# -------------------- Installing PHP Extension: imagick -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install imagick \ + # Enabling + && docker-php-ext-enable imagick \ + && true + + +# -------------------- Installing PHP Extension: imap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ + && docker-php-ext-install imap \ + && true + + +# -------------------- Installing PHP Extension: interbase -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install interbase \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install ldap \ + && true + + +# -------------------- Installing PHP Extension: mbstring -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install mbstring \ + && true + + +# -------------------- Installing PHP Extension: mcrypt -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install mcrypt \ + && true + + +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack-0.5.7 \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + +# -------------------- Installing PHP Extension: memcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install memcache \ + # Enabling + && docker-php-ext-enable memcache \ + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install memcached-2.2.0 \ + # Enabling + && docker-php-ext-enable memcached \ + && true + + +# -------------------- Installing PHP Extension: mongo -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Custom: Pecl command + && yes | pecl install mongo \ + # Enabling + && docker-php-ext-enable mongo \ + && true + + +# -------------------- Installing PHP Extension: mongodb -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install mongodb-1.2.11 \ + # Enabling + && docker-php-ext-enable mongodb \ + && true + + +# -------------------- Installing PHP Extension: mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install mysql \ + && true + + +# -------------------- Installing PHP Extension: mysqli -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install mysqli \ + && true + + +# -------------------- Installing PHP Extension: oauth -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install oauth-1.2.3 \ + # Enabling + && docker-php-ext-enable oauth \ + && true + + +# -------------------- Installing PHP Extension: oci8 -------------------- +RUN set -eux \ + # Generic pre-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +\ +&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install oci8 \ + # Generic post-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Custom: Pecl command + && pecl install zendopcache \ + # Enabling + && docker-php-ext-enable opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ + && docker-php-ext-install pdo_mysql \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install pgsql \ + && true + + +# -------------------- Installing PHP Extension: phalcon -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + # Custom: Branch + && git checkout phalcon-v2.0.13 \ + # Custom: Install command + && cd build && ./install \ + # Enabling + && docker-php-ext-enable phalcon \ + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install pspell \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install redis-4.3.0 \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: rdkafka -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install rdkafka-3.0.5 \ + # Enabling + && docker-php-ext-enable rdkafka \ + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install snmp \ + && true + + +# -------------------- Installing PHP Extension: soap -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure soap --with-libxml-dir=/usr \ + && docker-php-ext-install soap \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install sockets \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-1.9.23 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install uploadprogress \ + # Enabling + && docker-php-ext-enable uploadprogress \ + && true + + +# -------------------- Installing PHP Extension: wddx -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && docker-php-ext-install wddx \ + && true + + +# -------------------- Installing PHP Extension: xdebug -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install xdebug-2.4.1 \ + # Enabling + && docker-php-ext-enable xdebug \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ + # Installation + && docker-php-ext-install zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ + && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:5.4-base as final +MAINTAINER "cytopia" + ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.4 Image" \ - image="devilbox/php-fpm" \ - tag="5.4-mods" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.4-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-mods" ### -### Envs +### Copy artifacts from builder ### -ENV BUILD_DEPS \ - alien \ - firebird-dev \ - freetds-dev \ - libaio-dev \ - libbz2-dev \ - libc-client-dev \ - libcurl4-openssl-dev \ - libenchant-dev \ - libevent-dev \ - libfbclient2 \ - libfreetype6-dev \ - libgmp-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libkrb5-dev \ - libldap2-dev \ - libmagickwand-dev \ - libmcrypt-dev \ - libmemcached-dev \ - libnghttp2-dev \ - libpcre3-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librabbitmq-dev \ - librdkafka-dev \ - libsasl2-dev \ - libsnmp-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - snmp \ - zlib1g-dev \ - ca-certificates \ - git +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ -ENV RUN_DEPS \ + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libaio1 \ libaspell15 \ libc-client2007e \ @@ -83,382 +713,29 @@ ENV RUN_DEPS \ libxpm4 \ libxslt1.1 \ snmp \ - ca-certificates + ca-certificates \ + && rm -rf /var/lib/apt/lists/* \ + \ + && update-ca-certificates ### -### Install +### Post Install ### -RUN set -x \ - && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: ioncube ---- - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_5.4.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && (rm -rf /usr/local/lib/php/test/ioncube || true) \ - && (rm -rf /usr/local/lib/php/doc/ioncube || true) \ - \ -# ---- Installing PHP Extension: amqp ---- - && pecl install amqp-1.9.3 \ - && docker-php-ext-enable amqp \ - && (rm -rf /usr/local/lib/php/test/amqp || true) \ - && (rm -rf /usr/local/lib/php/doc/amqp || true) \ - \ -# ---- Installing PHP Extension: apcu ---- - && pecl install apcu-4.0.11 \ - && docker-php-ext-enable apcu \ - && (rm -rf /usr/local/lib/php/test/apcu || true) \ - && (rm -rf /usr/local/lib/php/doc/apcu || true) \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: enchant ---- - && /usr/local/bin/docker-php-ext-install enchant \ - && (rm -rf /usr/local/lib/php/test/enchant || true) \ - && (rm -rf /usr/local/lib/php/doc/enchant || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: ftp ---- - && /usr/local/bin/docker-php-ext-configure ftp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install ftp \ - && (rm -rf /usr/local/lib/php/test/ftp || true) \ - && (rm -rf /usr/local/lib/php/doc/ftp || true) \ - \ -# ---- Installing PHP Extension: gd ---- - && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ - && /usr/local/bin/docker-php-ext-install gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: gmp ---- - && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ - && /usr/local/bin/docker-php-ext-install gmp \ - && (rm -rf /usr/local/lib/php/test/gmp || true) \ - && (rm -rf /usr/local/lib/php/doc/gmp || true) \ - \ -# ---- Installing PHP Extension: igbinary ---- - && pecl install igbinary-2.0.8 \ - && docker-php-ext-enable igbinary \ - && (rm -rf /usr/local/lib/php/test/igbinary || true) \ - && (rm -rf /usr/local/lib/php/doc/igbinary || true) \ - \ -# ---- Installing PHP Extension: imagick ---- - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && (rm -rf /usr/local/lib/php/test/imagick || true) \ - && (rm -rf /usr/local/lib/php/doc/imagick || true) \ - \ -# ---- Installing PHP Extension: imap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ - && /usr/local/bin/docker-php-ext-install imap \ - && (rm -rf /usr/local/lib/php/test/imap || true) \ - && (rm -rf /usr/local/lib/php/doc/imap || true) \ - \ -# ---- Installing PHP Extension: interbase ---- - && /usr/local/bin/docker-php-ext-install interbase \ - && (rm -rf /usr/local/lib/php/test/interbase || true) \ - && (rm -rf /usr/local/lib/php/doc/interbase || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && /usr/local/bin/docker-php-ext-install intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: mbstring ---- - && /usr/local/bin/docker-php-ext-install mbstring \ - && (rm -rf /usr/local/lib/php/test/mbstring || true) \ - && (rm -rf /usr/local/lib/php/doc/mbstring || true) \ - \ -# ---- Installing PHP Extension: mcrypt ---- - && /usr/local/bin/docker-php-ext-install mcrypt \ - && (rm -rf /usr/local/lib/php/test/mcrypt || true) \ - && (rm -rf /usr/local/lib/php/doc/mcrypt || true) \ - \ -# ---- Installing PHP Extension: msgpack ---- - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - && (rm -rf /usr/local/lib/php/test/msgpack || true) \ - && (rm -rf /usr/local/lib/php/doc/msgpack || true) \ - \ -# ---- Installing PHP Extension: memcache ---- - && pecl install memcache \ - && docker-php-ext-enable memcache \ - && (rm -rf /usr/local/lib/php/test/memcache || true) \ - && (rm -rf /usr/local/lib/php/doc/memcache || true) \ - \ -# ---- Installing PHP Extension: memcached ---- - && pecl install memcached-2.2.0 \ - && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongo ---- - && yes | pecl install mongo \ - && docker-php-ext-enable mongo \ - && (rm -rf /usr/local/lib/php/test/mongo || true) \ - && (rm -rf /usr/local/lib/php/doc/mongo || true) \ - \ -# ---- Installing PHP Extension: mongodb ---- - && pecl install mongodb-1.2.11 \ - && docker-php-ext-enable mongodb \ - && (rm -rf /usr/local/lib/php/test/mongodb || true) \ - && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ - \ -# ---- Installing PHP Extension: mysql ---- - && /usr/local/bin/docker-php-ext-install mysql \ - && (rm -rf /usr/local/lib/php/test/mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/mysql || true) \ - \ -# ---- Installing PHP Extension: mysqli ---- - && /usr/local/bin/docker-php-ext-install mysqli \ - && (rm -rf /usr/local/lib/php/test/mysqli || true) \ - && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ - \ -# ---- Installing PHP Extension: oauth ---- - && pecl install oauth-1.2.3 \ - && docker-php-ext-enable oauth \ - && (rm -rf /usr/local/lib/php/test/oauth || true) \ - && (rm -rf /usr/local/lib/php/doc/oauth || true) \ - \ -# ---- Installing PHP Extension: oci8 ---- +RUN set -eux \ + # ---------- oci8 ---------- && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ -\ -&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ - \ - && /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install oci8 \ - && (rm -rf /usr/local/lib/php/test/oci8 || true) \ - && (rm -rf /usr/local/lib/php/doc/oci8 || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && pecl install zendopcache \ - && docker-php-ext-enable opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- - && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_mysql ---- - && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ - && /usr/local/bin/docker-php-ext-install pdo_mysql \ - && (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: phalcon ---- - && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - && git checkout phalcon-v2.0.13 \ - && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && (rm -rf /usr/local/lib/php/test/phalcon || true) \ - && (rm -rf /usr/local/lib/php/doc/phalcon || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: redis ---- - && pecl install redis \ - && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: rdkafka ---- - && pecl install rdkafka-3.0.5 \ - && docker-php-ext-enable rdkafka \ - && (rm -rf /usr/local/lib/php/test/rdkafka || true) \ - && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: soap ---- - && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install soap \ - && (rm -rf /usr/local/lib/php/test/soap || true) \ - && (rm -rf /usr/local/lib/php/doc/soap || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: swoole ---- - && pecl install swoole-1.9.23 \ - && docker-php-ext-enable swoole \ - && (rm -rf /usr/local/lib/php/test/swoole || true) \ - && (rm -rf /usr/local/lib/php/doc/swoole || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: wddx ---- - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install wddx \ - && (rm -rf /usr/local/lib/php/test/wddx || true) \ - && (rm -rf /usr/local/lib/php/doc/wddx || true) \ - \ -# ---- Installing PHP Extension: xdebug ---- - && pecl install xdebug-2.4.1 \ - && docker-php-ext-enable xdebug \ - && (rm -rf /usr/local/lib/php/test/xdebug || true) \ - && (rm -rf /usr/local/lib/php/doc/xdebug || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ - && /usr/local/bin/docker-php-ext-install zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ - && rm -rf /var/lib/apt/lists/* \ - \ - && update-ca-certificates \ - \ - && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.4' \ && /usr/local/sbin/php-fpm --test \ diff --git a/Dockerfiles/mods/Dockerfile-5.5 b/Dockerfiles/mods/Dockerfile-5.5 index 5f06378..1d95a64 100644 --- a/Dockerfiles/mods/Dockerfile-5.5 +++ b/Dockerfiles/mods/Dockerfile-5.5 @@ -1,65 +1,682 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:5.5-base -MAINTAINER "cytopia" +FROM devilbox/php-fpm:5.5-base as builder +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + alien \ + firebird-dev \ + freetds-dev \ + libaio-dev \ + libbz2-dev \ + libc-client-dev \ + libcurl4-openssl-dev \ + libenchant-dev \ + libevent-dev \ + libfbclient2 \ + libfreetype6-dev \ + libgmp-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libkrb5-dev \ + libldap2-dev \ + libmagickwand-dev \ + libmcrypt-dev \ + libmemcached-dev \ + libnghttp2-dev \ + libpcre3-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + librabbitmq-dev \ + librdkafka-dev \ + librecode-dev \ + libsasl2-dev \ + libsnmp-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + snmp \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + +# -------------------- Installing PHP Extension: amqp -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install amqp-1.9.3 \ + # Enabling + && docker-php-ext-enable amqp \ + && true + + +# -------------------- Installing PHP Extension: apcu -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install apcu-4.0.11 \ + # Enabling + && docker-php-ext-enable apcu \ + && true + + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && true + + +# -------------------- Installing PHP Extension: enchant -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Version specific pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && true + + +# -------------------- Installing PHP Extension: gmp -------------------- +RUN set -eux \ + # Generic pre-command + && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ + && true + + +# -------------------- Installing PHP Extension: igbinary -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install igbinary-2.0.8 \ + # Enabling + && docker-php-ext-enable igbinary \ + && true + + +# -------------------- Installing PHP Extension: imagick -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install imagick \ + # Enabling + && docker-php-ext-enable imagick \ + && true + + +# -------------------- Installing PHP Extension: imap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ + && true + + +# -------------------- Installing PHP Extension: interbase -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ + && true + + +# -------------------- Installing PHP Extension: mcrypt -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && true + + +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack-0.5.7 \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + +# -------------------- Installing PHP Extension: memcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install memcache \ + # Enabling + && docker-php-ext-enable memcache \ + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install memcached-2.2.0 \ + # Enabling + && docker-php-ext-enable memcached \ + && true + + +# -------------------- Installing PHP Extension: mongo -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Custom: Pecl command + && yes | pecl install mongo \ + # Enabling + && docker-php-ext-enable mongo \ + && true + + +# -------------------- Installing PHP Extension: mongodb -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install mongodb-1.5.5 \ + # Enabling + && docker-php-ext-enable mongodb \ + && true + + +# -------------------- Installing PHP Extension: mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ + && true + + +# -------------------- Installing PHP Extension: mysqli -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && true + + +# -------------------- Installing PHP Extension: oauth -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install oauth-1.2.3 \ + # Enabling + && docker-php-ext-enable oauth \ + && true + + +# -------------------- Installing PHP Extension: oci8 -------------------- +RUN set -eux \ + # Generic pre-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +\ +&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ + # Generic post-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && true + + +# -------------------- Installing PHP Extension: phalcon -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + # Custom: Branch + && git checkout v3.4.2 \ + # Custom: Install command + && cd build && ./install \ + # Enabling + && docker-php-ext-enable phalcon \ + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install redis-4.3.0 \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: rdkafka -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install rdkafka-3.0.5 \ + # Enabling + && docker-php-ext-enable rdkafka \ + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ + && true + + +# -------------------- Installing PHP Extension: soap -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure soap --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-1.9.23 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install uploadprogress \ + # Enabling + && docker-php-ext-enable uploadprogress \ + && true + + +# -------------------- Installing PHP Extension: wddx -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && true + + +# -------------------- Installing PHP Extension: xdebug -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install xdebug-2.4.1 \ + # Enabling + && docker-php-ext-enable xdebug \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ + && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:5.5-base as final +MAINTAINER "cytopia" + ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.5 Image" \ - image="devilbox/php-fpm" \ - tag="5.5-mods" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.5-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-mods" ### -### Envs +### Copy artifacts from builder ### -ENV BUILD_DEPS \ - alien \ - firebird-dev \ - freetds-dev \ - libaio-dev \ - libbz2-dev \ - libc-client-dev \ - libcurl4-openssl-dev \ - libenchant-dev \ - libevent-dev \ - libfbclient2 \ - libfreetype6-dev \ - libgmp-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libkrb5-dev \ - libldap2-dev \ - libmagickwand-dev \ - libmcrypt-dev \ - libmemcached-dev \ - libnghttp2-dev \ - libpcre3-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librabbitmq-dev \ - librdkafka-dev \ - librecode-dev \ - libsasl2-dev \ - libsnmp-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - snmp \ - zlib1g-dev \ - ca-certificates \ - git +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ -ENV RUN_DEPS \ + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libaio1 \ libaspell15 \ libc-client2007e \ @@ -84,375 +701,29 @@ ENV RUN_DEPS \ libxpm4 \ libxslt1.1 \ snmp \ - ca-certificates + ca-certificates \ + && rm -rf /var/lib/apt/lists/* \ + \ + && update-ca-certificates ### -### Install +### Post Install ### -RUN set -x \ - && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: ioncube ---- - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_5.5.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && (rm -rf /usr/local/lib/php/test/ioncube || true) \ - && (rm -rf /usr/local/lib/php/doc/ioncube || true) \ - \ -# ---- Installing PHP Extension: amqp ---- - && pecl install amqp-1.9.3 \ - && docker-php-ext-enable amqp \ - && (rm -rf /usr/local/lib/php/test/amqp || true) \ - && (rm -rf /usr/local/lib/php/doc/amqp || true) \ - \ -# ---- Installing PHP Extension: apcu ---- - && pecl install apcu-4.0.11 \ - && docker-php-ext-enable apcu \ - && (rm -rf /usr/local/lib/php/test/apcu || true) \ - && (rm -rf /usr/local/lib/php/doc/apcu || true) \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: enchant ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && (rm -rf /usr/local/lib/php/test/enchant || true) \ - && (rm -rf /usr/local/lib/php/doc/enchant || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: gd ---- - && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: gmp ---- - && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ - && (rm -rf /usr/local/lib/php/test/gmp || true) \ - && (rm -rf /usr/local/lib/php/doc/gmp || true) \ - \ -# ---- Installing PHP Extension: igbinary ---- - && pecl install igbinary-2.0.8 \ - && docker-php-ext-enable igbinary \ - && (rm -rf /usr/local/lib/php/test/igbinary || true) \ - && (rm -rf /usr/local/lib/php/doc/igbinary || true) \ - \ -# ---- Installing PHP Extension: imagick ---- - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && (rm -rf /usr/local/lib/php/test/imagick || true) \ - && (rm -rf /usr/local/lib/php/doc/imagick || true) \ - \ -# ---- Installing PHP Extension: imap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ - && (rm -rf /usr/local/lib/php/test/imap || true) \ - && (rm -rf /usr/local/lib/php/doc/imap || true) \ - \ -# ---- Installing PHP Extension: interbase ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && (rm -rf /usr/local/lib/php/test/interbase || true) \ - && (rm -rf /usr/local/lib/php/doc/interbase || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: mcrypt ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - && (rm -rf /usr/local/lib/php/test/mcrypt || true) \ - && (rm -rf /usr/local/lib/php/doc/mcrypt || true) \ - \ -# ---- Installing PHP Extension: msgpack ---- - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - && (rm -rf /usr/local/lib/php/test/msgpack || true) \ - && (rm -rf /usr/local/lib/php/doc/msgpack || true) \ - \ -# ---- Installing PHP Extension: memcache ---- - && pecl install memcache \ - && docker-php-ext-enable memcache \ - && (rm -rf /usr/local/lib/php/test/memcache || true) \ - && (rm -rf /usr/local/lib/php/doc/memcache || true) \ - \ -# ---- Installing PHP Extension: memcached ---- - && pecl install memcached-2.2.0 \ - && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongo ---- - && yes | pecl install mongo \ - && docker-php-ext-enable mongo \ - && (rm -rf /usr/local/lib/php/test/mongo || true) \ - && (rm -rf /usr/local/lib/php/doc/mongo || true) \ - \ -# ---- Installing PHP Extension: mongodb ---- - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - && (rm -rf /usr/local/lib/php/test/mongodb || true) \ - && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ - \ -# ---- Installing PHP Extension: mysql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ - && (rm -rf /usr/local/lib/php/test/mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/mysql || true) \ - \ -# ---- Installing PHP Extension: mysqli ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && (rm -rf /usr/local/lib/php/test/mysqli || true) \ - && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ - \ -# ---- Installing PHP Extension: oauth ---- - && pecl install oauth-1.2.3 \ - && docker-php-ext-enable oauth \ - && (rm -rf /usr/local/lib/php/test/oauth || true) \ - && (rm -rf /usr/local/lib/php/doc/oauth || true) \ - \ -# ---- Installing PHP Extension: oci8 ---- +RUN set -eux \ + # ---------- oci8 ---------- && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ -\ -&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ - \ - && /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ - && (rm -rf /usr/local/lib/php/test/oci8 || true) \ - && (rm -rf /usr/local/lib/php/doc/oci8 || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- - && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_mysql ---- - && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ - && (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: phalcon ---- - && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - && git checkout v3.4.2 \ - && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && (rm -rf /usr/local/lib/php/test/phalcon || true) \ - && (rm -rf /usr/local/lib/php/doc/phalcon || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: recode ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && (rm -rf /usr/local/lib/php/test/recode || true) \ - && (rm -rf /usr/local/lib/php/doc/recode || true) \ - \ -# ---- Installing PHP Extension: redis ---- - && pecl install redis \ - && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: rdkafka ---- - && pecl install rdkafka-3.0.5 \ - && docker-php-ext-enable rdkafka \ - && (rm -rf /usr/local/lib/php/test/rdkafka || true) \ - && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: soap ---- - && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ - && (rm -rf /usr/local/lib/php/test/soap || true) \ - && (rm -rf /usr/local/lib/php/doc/soap || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: swoole ---- - && pecl install swoole-1.9.23 \ - && docker-php-ext-enable swoole \ - && (rm -rf /usr/local/lib/php/test/swoole || true) \ - && (rm -rf /usr/local/lib/php/doc/swoole || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: wddx ---- - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - && (rm -rf /usr/local/lib/php/test/wddx || true) \ - && (rm -rf /usr/local/lib/php/doc/wddx || true) \ - \ -# ---- Installing PHP Extension: xdebug ---- - && pecl install xdebug-2.4.1 \ - && docker-php-ext-enable xdebug \ - && (rm -rf /usr/local/lib/php/test/xdebug || true) \ - && (rm -rf /usr/local/lib/php/doc/xdebug || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ - && rm -rf /var/lib/apt/lists/* \ - \ - && update-ca-certificates \ - \ - && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.5' \ && /usr/local/sbin/php-fpm --test \ diff --git a/Dockerfiles/mods/Dockerfile-5.6 b/Dockerfiles/mods/Dockerfile-5.6 index 778e2f3..522e731 100644 --- a/Dockerfiles/mods/Dockerfile-5.6 +++ b/Dockerfiles/mods/Dockerfile-5.6 @@ -1,67 +1,698 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:5.6-base -MAINTAINER "cytopia" +FROM devilbox/php-fpm:5.6-base as builder +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + alien \ + firebird-dev \ + freetds-dev \ + libaio-dev \ + libbz2-dev \ + libc-client-dev \ + libcurl4-openssl-dev \ + libenchant-dev \ + libevent-dev \ + libfbclient2 \ + libfreetype6-dev \ + libgmp-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libkrb5-dev \ + libldap2-dev \ + libmagickwand-dev \ + libmcrypt-dev \ + libmemcached-dev \ + libnghttp2-dev \ + libpcre3-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + librabbitmq-dev \ + librdkafka-dev \ + librecode-dev \ + libsasl2-dev \ + libsnmp-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libwebp-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + libzip-dev \ + snmp \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + +# -------------------- Installing PHP Extension: amqp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Custom: Pecl command + && echo "/usr" | pecl install amqp \ + # Enabling + && docker-php-ext-enable amqp \ + && true + + +# -------------------- Installing PHP Extension: apcu -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install apcu-4.0.11 \ + # Enabling + && docker-php-ext-enable apcu \ + && true + + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && true + + +# -------------------- Installing PHP Extension: blackfire -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ +&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \ +&& mkdir -p /tmp/blackfire \ +&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire \ +&& mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \ +&& rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz \ + \ + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && true + + +# -------------------- Installing PHP Extension: enchant -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Version specific pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && true + + +# -------------------- Installing PHP Extension: gmp -------------------- +RUN set -eux \ + # Generic pre-command + && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ + && true + + +# -------------------- Installing PHP Extension: igbinary -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install igbinary-2.0.8 \ + # Enabling + && docker-php-ext-enable igbinary \ + && true + + +# -------------------- Installing PHP Extension: imagick -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install imagick \ + # Enabling + && docker-php-ext-enable imagick \ + && true + + +# -------------------- Installing PHP Extension: imap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ + && true + + +# -------------------- Installing PHP Extension: interbase -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ + && true + + +# -------------------- Installing PHP Extension: mcrypt -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && true + + +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack-0.5.7 \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + +# -------------------- Installing PHP Extension: memcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install memcache \ + # Enabling + && docker-php-ext-enable memcache \ + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install memcached-2.2.0 \ + # Enabling + && docker-php-ext-enable memcached \ + && true + + +# -------------------- Installing PHP Extension: mongo -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Custom: Pecl command + && yes | pecl install mongo \ + # Enabling + && docker-php-ext-enable mongo \ + && true + + +# -------------------- Installing PHP Extension: mongodb -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install mongodb \ + # Enabling + && docker-php-ext-enable mongodb \ + && true + + +# -------------------- Installing PHP Extension: mysql -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ + && true + + +# -------------------- Installing PHP Extension: mysqli -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && true + + +# -------------------- Installing PHP Extension: oauth -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install oauth-1.2.3 \ + # Enabling + && docker-php-ext-enable oauth \ + && true + + +# -------------------- Installing PHP Extension: oci8 -------------------- +RUN set -eux \ + # Generic pre-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +\ +&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ + # Generic post-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && true + + +# -------------------- Installing PHP Extension: phalcon -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + # Custom: Branch + && git checkout v3.4.2 \ + # Custom: Install command + && cd build && ./install \ + # Enabling + && docker-php-ext-enable phalcon \ + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install redis-4.3.0 \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: rdkafka -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install rdkafka-3.1.2 \ + # Enabling + && docker-php-ext-enable rdkafka \ + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ + && true + + +# -------------------- Installing PHP Extension: soap -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure soap --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-1.9.23 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install uploadprogress \ + # Enabling + && docker-php-ext-enable uploadprogress \ + && true + + +# -------------------- Installing PHP Extension: wddx -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && true + + +# -------------------- Installing PHP Extension: xdebug -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install xdebug-2.4.1 \ + # Enabling + && docker-php-ext-enable xdebug \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ + && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:5.6-base as final +MAINTAINER "cytopia" + ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.6 Image" \ - image="devilbox/php-fpm" \ - tag="5.6-mods" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.6-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-mods" ### -### Envs +### Copy artifacts from builder ### -ENV BUILD_DEPS \ - alien \ - firebird-dev \ - freetds-dev \ - libaio-dev \ - libbz2-dev \ - libc-client-dev \ - libcurl4-openssl-dev \ - libenchant-dev \ - libevent-dev \ - libfbclient2 \ - libfreetype6-dev \ - libgmp-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libkrb5-dev \ - libldap2-dev \ - libmagickwand-dev \ - libmcrypt-dev \ - libmemcached-dev \ - libnghttp2-dev \ - libpcre3-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librabbitmq-dev \ - librdkafka-dev \ - librecode-dev \ - libsasl2-dev \ - libsnmp-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - snmp \ - zlib1g-dev \ - ca-certificates \ - git +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ -ENV RUN_DEPS \ + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libaio1 \ libaspell15 \ libc-client2007e \ @@ -88,386 +719,29 @@ ENV RUN_DEPS \ libxslt1.1 \ libzip4 \ snmp \ - ca-certificates + ca-certificates \ + && rm -rf /var/lib/apt/lists/* \ + \ + && update-ca-certificates ### -### Install +### Post Install ### -RUN set -x \ - && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: ioncube ---- - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_5.6.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && (rm -rf /usr/local/lib/php/test/ioncube || true) \ - && (rm -rf /usr/local/lib/php/doc/ioncube || true) \ - \ -# ---- Installing PHP Extension: amqp ---- - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - && (rm -rf /usr/local/lib/php/test/amqp || true) \ - && (rm -rf /usr/local/lib/php/doc/amqp || true) \ - \ -# ---- Installing PHP Extension: apcu ---- - && pecl install apcu-4.0.11 \ - && docker-php-ext-enable apcu \ - && (rm -rf /usr/local/lib/php/test/apcu || true) \ - && (rm -rf /usr/local/lib/php/doc/apcu || true) \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: blackfire ---- - && version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ -&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \ -&& mkdir -p /tmp/blackfire \ -&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire \ -&& mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \ -&& rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz \ - \ - && (rm -rf /usr/local/lib/php/test/blackfire || true) \ - && (rm -rf /usr/local/lib/php/doc/blackfire || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: enchant ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && (rm -rf /usr/local/lib/php/test/enchant || true) \ - && (rm -rf /usr/local/lib/php/doc/enchant || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: gd ---- - && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: gmp ---- - && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ - && (rm -rf /usr/local/lib/php/test/gmp || true) \ - && (rm -rf /usr/local/lib/php/doc/gmp || true) \ - \ -# ---- Installing PHP Extension: igbinary ---- - && pecl install igbinary-2.0.8 \ - && docker-php-ext-enable igbinary \ - && (rm -rf /usr/local/lib/php/test/igbinary || true) \ - && (rm -rf /usr/local/lib/php/doc/igbinary || true) \ - \ -# ---- Installing PHP Extension: imagick ---- - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && (rm -rf /usr/local/lib/php/test/imagick || true) \ - && (rm -rf /usr/local/lib/php/doc/imagick || true) \ - \ -# ---- Installing PHP Extension: imap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ - && (rm -rf /usr/local/lib/php/test/imap || true) \ - && (rm -rf /usr/local/lib/php/doc/imap || true) \ - \ -# ---- Installing PHP Extension: interbase ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && (rm -rf /usr/local/lib/php/test/interbase || true) \ - && (rm -rf /usr/local/lib/php/doc/interbase || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: mcrypt ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - && (rm -rf /usr/local/lib/php/test/mcrypt || true) \ - && (rm -rf /usr/local/lib/php/doc/mcrypt || true) \ - \ -# ---- Installing PHP Extension: msgpack ---- - && pecl install msgpack-0.5.7 \ - && docker-php-ext-enable msgpack \ - && (rm -rf /usr/local/lib/php/test/msgpack || true) \ - && (rm -rf /usr/local/lib/php/doc/msgpack || true) \ - \ -# ---- Installing PHP Extension: memcache ---- - && pecl install memcache \ - && docker-php-ext-enable memcache \ - && (rm -rf /usr/local/lib/php/test/memcache || true) \ - && (rm -rf /usr/local/lib/php/doc/memcache || true) \ - \ -# ---- Installing PHP Extension: memcached ---- - && pecl install memcached-2.2.0 \ - && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongo ---- - && yes | pecl install mongo \ - && docker-php-ext-enable mongo \ - && (rm -rf /usr/local/lib/php/test/mongo || true) \ - && (rm -rf /usr/local/lib/php/doc/mongo || true) \ - \ -# ---- Installing PHP Extension: mongodb ---- - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - && (rm -rf /usr/local/lib/php/test/mongodb || true) \ - && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ - \ -# ---- Installing PHP Extension: mysql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysql \ - && (rm -rf /usr/local/lib/php/test/mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/mysql || true) \ - \ -# ---- Installing PHP Extension: mysqli ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && (rm -rf /usr/local/lib/php/test/mysqli || true) \ - && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ - \ -# ---- Installing PHP Extension: oauth ---- - && pecl install oauth-1.2.3 \ - && docker-php-ext-enable oauth \ - && (rm -rf /usr/local/lib/php/test/oauth || true) \ - && (rm -rf /usr/local/lib/php/doc/oauth || true) \ - \ -# ---- Installing PHP Extension: oci8 ---- +RUN set -eux \ + # ---------- oci8 ---------- && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ -\ -&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ - \ - && /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ - && (rm -rf /usr/local/lib/php/test/oci8 || true) \ - && (rm -rf /usr/local/lib/php/doc/oci8 || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- - && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_mysql ---- - && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ - && (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: phalcon ---- - && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - && git checkout v3.4.2 \ - && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && (rm -rf /usr/local/lib/php/test/phalcon || true) \ - && (rm -rf /usr/local/lib/php/doc/phalcon || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: recode ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && (rm -rf /usr/local/lib/php/test/recode || true) \ - && (rm -rf /usr/local/lib/php/doc/recode || true) \ - \ -# ---- Installing PHP Extension: redis ---- - && pecl install redis \ - && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: rdkafka ---- - && pecl install rdkafka \ - && docker-php-ext-enable rdkafka \ - && (rm -rf /usr/local/lib/php/test/rdkafka || true) \ - && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: soap ---- - && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ - && (rm -rf /usr/local/lib/php/test/soap || true) \ - && (rm -rf /usr/local/lib/php/doc/soap || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: swoole ---- - && pecl install swoole-1.9.23 \ - && docker-php-ext-enable swoole \ - && (rm -rf /usr/local/lib/php/test/swoole || true) \ - && (rm -rf /usr/local/lib/php/doc/swoole || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- - && pecl install uploadprogress \ - && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: wddx ---- - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - && (rm -rf /usr/local/lib/php/test/wddx || true) \ - && (rm -rf /usr/local/lib/php/doc/wddx || true) \ - \ -# ---- Installing PHP Extension: xdebug ---- - && pecl install xdebug-2.4.1 \ - && docker-php-ext-enable xdebug \ - && (rm -rf /usr/local/lib/php/test/xdebug || true) \ - && (rm -rf /usr/local/lib/php/doc/xdebug || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ - && rm -rf /var/lib/apt/lists/* \ - \ - && update-ca-certificates \ - \ - && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^5.6' \ && /usr/local/sbin/php-fpm --test \ diff --git a/Dockerfiles/mods/Dockerfile-7.0 b/Dockerfiles/mods/Dockerfile-7.0 index 281fef7..fe16065 100644 --- a/Dockerfiles/mods/Dockerfile-7.0 +++ b/Dockerfiles/mods/Dockerfile-7.0 @@ -1,68 +1,739 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:7.0-base -MAINTAINER "cytopia" +FROM devilbox/php-fpm:7.0-base as builder +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + alien \ + firebird-dev \ + freetds-dev \ + libaio-dev \ + libbz2-dev \ + libc-client-dev \ + libcurl4-openssl-dev \ + libenchant-dev \ + libevent-dev \ + libfbclient2 \ + libfreetype6-dev \ + libgmp-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libkrb5-dev \ + libldap2-dev \ + libmagickwand-dev \ + libmcrypt-dev \ + libmemcached-dev \ + libnghttp2-dev \ + libpcre3-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + librabbitmq-dev \ + librdkafka-dev \ + librecode-dev \ + libsasl2-dev \ + libsnmp-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libwebp-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + libzip-dev \ + snmp \ + unixodbc-dev \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ +&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ +&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ +&& tar xvfz ioncube.tar.gz \ +&& cd ioncube \ +&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \ +&& cd ../ \ +&& rm -rf ioncube \ +&& rm -rf ioncube.tar.gz \ + \ + && true + + +# -------------------- Installing PHP Extension: amqp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Custom: Pecl command + && echo "/usr" | pecl install amqp \ + # Enabling + && docker-php-ext-enable amqp \ + && true + + +# -------------------- Installing PHP Extension: apcu -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install apcu \ + # Enabling + && docker-php-ext-enable apcu \ + && true + + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && true + + +# -------------------- Installing PHP Extension: blackfire -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension + && version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ +&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \ +&& mkdir -p /tmp/blackfire \ +&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire \ +&& mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \ +&& rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz \ + \ + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && true + + +# -------------------- Installing PHP Extension: enchant -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && true + + +# -------------------- Installing PHP Extension: gmp -------------------- +RUN set -eux \ + # Generic pre-command + && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ + && true + + +# -------------------- Installing PHP Extension: igbinary -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install igbinary \ + # Enabling + && docker-php-ext-enable igbinary \ + && true + + +# -------------------- Installing PHP Extension: imagick -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install imagick \ + # Enabling + && docker-php-ext-enable imagick \ + && true + + +# -------------------- Installing PHP Extension: imap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ + && true + + +# -------------------- Installing PHP Extension: interbase -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ + && true + + +# -------------------- Installing PHP Extension: mcrypt -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && true + + +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install msgpack \ + # Enabling + && docker-php-ext-enable msgpack \ + && true + + +# -------------------- Installing PHP Extension: memcache -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ + && cd /tmp/memcache \ + # Custom: Branch + && git checkout origin/php7 \ + # Default: Install command + && phpize \ + && ./configure --with-zlib-dir=/usr \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable memcache \ + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install memcached \ + # Enabling + && docker-php-ext-enable memcached \ + && true + + +# -------------------- Installing PHP Extension: mongodb -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install mongodb \ + # Enabling + && docker-php-ext-enable mongodb \ + && true + + +# -------------------- Installing PHP Extension: mysqli -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && true + + +# -------------------- Installing PHP Extension: oauth -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install oauth \ + # Enabling + && docker-php-ext-enable oauth \ + && true + + +# -------------------- Installing PHP Extension: oci8 -------------------- +RUN set -eux \ + # Generic pre-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +\ +&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ + # Generic post-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && true + + +# -------------------- Installing PHP Extension: pdo_oci -------------------- +RUN set -eux \ + # Generic pre-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +\ +&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pdo_sqlsrv -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install pdo_sqlsrv-5.3.0 \ + # Enabling + && docker-php-ext-enable pdo_sqlsrv \ + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && true + + +# -------------------- Installing PHP Extension: phalcon -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ + && cd /tmp/phalcon \ + # Custom: Branch + && git checkout v3.4.2 \ + # Custom: Install command + && cd build && ./install \ + # Enabling + && docker-php-ext-enable phalcon \ + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install redis \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: rdkafka -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install rdkafka-3.1.2 \ + # Enabling + && docker-php-ext-enable rdkafka \ + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ + && true + + +# -------------------- Installing PHP Extension: soap -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure soap --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && true + + +# -------------------- Installing PHP Extension: sqlsrv -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install sqlsrv-5.3.0 \ + # Enabling + && docker-php-ext-enable sqlsrv \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install swoole-4.2.13 \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ + && cd /tmp/uploadprogress \ + # Default: Install command + && phpize \ + && ./configure --enable-uploadprogress \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable uploadprogress \ + && true + + +# -------------------- Installing PHP Extension: wddx -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && true + + +# -------------------- Installing PHP Extension: xdebug -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install xdebug \ + # Enabling + && docker-php-ext-enable xdebug \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ + && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:7.0-base as final +MAINTAINER "cytopia" + ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.0 Image" \ - image="devilbox/php-fpm" \ - tag="7.0-mods" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.0-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-mods" ### -### Envs +### Copy artifacts from builder ### -ENV BUILD_DEPS \ - alien \ - firebird-dev \ - freetds-dev \ - libaio-dev \ - libbz2-dev \ - libc-client-dev \ - libcurl4-openssl-dev \ - libenchant-dev \ - libevent-dev \ - libfbclient2 \ - libfreetype6-dev \ - libgmp-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libkrb5-dev \ - libldap2-dev \ - libmagickwand-dev \ - libmcrypt-dev \ - libmemcached-dev \ - libnghttp2-dev \ - libpcre3-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librabbitmq-dev \ - librdkafka-dev \ - librecode-dev \ - libsasl2-dev \ - libsnmp-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - snmp \ - unixodbc-dev \ - zlib1g-dev \ - ca-certificates \ - git +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ -ENV RUN_DEPS \ + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libaio1 \ libaspell15 \ libc-client2007e \ @@ -89,419 +760,29 @@ ENV RUN_DEPS \ libzip4 \ snmp \ unixodbc \ - ca-certificates - - -### -### Install -### -RUN set -x \ - && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: ioncube ---- - && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ -&& if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ -&& curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ -&& tar xvfz ioncube.tar.gz \ -&& cd ioncube \ -&& cp "ioncube_loader_lin_7.0.so" "${EXTENSION_DIR}/ioncube.so" \ -&& cd ../ \ -&& rm -rf ioncube \ -&& rm -rf ioncube.tar.gz \ - \ - && (rm -rf /usr/local/lib/php/test/ioncube || true) \ - && (rm -rf /usr/local/lib/php/doc/ioncube || true) \ - \ -# ---- Installing PHP Extension: amqp ---- - && echo "/usr" | pecl install amqp \ - && docker-php-ext-enable amqp \ - && (rm -rf /usr/local/lib/php/test/amqp || true) \ - && (rm -rf /usr/local/lib/php/doc/amqp || true) \ - \ -# ---- Installing PHP Extension: apcu ---- - && pecl install apcu \ - && docker-php-ext-enable apcu \ - && (rm -rf /usr/local/lib/php/test/apcu || true) \ - && (rm -rf /usr/local/lib/php/doc/apcu || true) \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: blackfire ---- - && version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ -&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \ -&& mkdir -p /tmp/blackfire \ -&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp/blackfire \ -&& mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \ -&& rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz \ - \ - && (rm -rf /usr/local/lib/php/test/blackfire || true) \ - && (rm -rf /usr/local/lib/php/doc/blackfire || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: enchant ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && (rm -rf /usr/local/lib/php/test/enchant || true) \ - && (rm -rf /usr/local/lib/php/doc/enchant || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: gd ---- - && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: gmp ---- - && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ - && (rm -rf /usr/local/lib/php/test/gmp || true) \ - && (rm -rf /usr/local/lib/php/doc/gmp || true) \ - \ -# ---- Installing PHP Extension: igbinary ---- - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - && (rm -rf /usr/local/lib/php/test/igbinary || true) \ - && (rm -rf /usr/local/lib/php/doc/igbinary || true) \ - \ -# ---- Installing PHP Extension: imagick ---- - && pecl install imagick \ - && docker-php-ext-enable imagick \ - && (rm -rf /usr/local/lib/php/test/imagick || true) \ - && (rm -rf /usr/local/lib/php/doc/imagick || true) \ - \ -# ---- Installing PHP Extension: imap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ - && (rm -rf /usr/local/lib/php/test/imap || true) \ - && (rm -rf /usr/local/lib/php/doc/imap || true) \ - \ -# ---- Installing PHP Extension: interbase ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && (rm -rf /usr/local/lib/php/test/interbase || true) \ - && (rm -rf /usr/local/lib/php/doc/interbase || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: mcrypt ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - && (rm -rf /usr/local/lib/php/test/mcrypt || true) \ - && (rm -rf /usr/local/lib/php/doc/mcrypt || true) \ - \ -# ---- Installing PHP Extension: msgpack ---- - && pecl install msgpack \ - && docker-php-ext-enable msgpack \ - && (rm -rf /usr/local/lib/php/test/msgpack || true) \ - && (rm -rf /usr/local/lib/php/doc/msgpack || true) \ - \ -# ---- Installing PHP Extension: memcache ---- - && git clone https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ - && cd /tmp/memcache \ - && git checkout origin/php7 \ - && phpize \ - && ./configure --with-zlib-dir=/usr \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ - && docker-php-ext-enable memcache \ - && (rm -rf /usr/local/lib/php/test/memcache || true) \ - && (rm -rf /usr/local/lib/php/doc/memcache || true) \ - \ -# ---- Installing PHP Extension: memcached ---- - && pecl install memcached \ - && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongodb ---- - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - && (rm -rf /usr/local/lib/php/test/mongodb || true) \ - && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ - \ -# ---- Installing PHP Extension: mysqli ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && (rm -rf /usr/local/lib/php/test/mysqli || true) \ - && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ - \ -# ---- Installing PHP Extension: oauth ---- - && pecl install oauth \ - && docker-php-ext-enable oauth \ - && (rm -rf /usr/local/lib/php/test/oauth || true) \ - && (rm -rf /usr/local/lib/php/doc/oauth || true) \ - \ -# ---- Installing PHP Extension: oci8 ---- - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ -&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ -&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ -\ -&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ - \ - && /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ - && (rm -rf /usr/local/lib/php/test/oci8 || true) \ - && (rm -rf /usr/local/lib/php/doc/oci8 || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- - && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_mysql ---- - && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ - && (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \ - \ -# ---- Installing PHP Extension: pdo_oci ---- - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ -&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ -&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ -\ -&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ - \ - && /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ - && (rm -rf /usr/local/lib/php/test/pdo_oci || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pdo_sqlsrv ---- - && pecl install pdo_sqlsrv-5.3.0 \ - && docker-php-ext-enable pdo_sqlsrv \ - && (rm -rf /usr/local/lib/php/test/pdo_sqlsrv || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_sqlsrv || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: phalcon ---- - && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ - && cd /tmp/phalcon \ - && git checkout v3.4.2 \ - && cd build && ./install \ - && docker-php-ext-enable phalcon \ - && (rm -rf /usr/local/lib/php/test/phalcon || true) \ - && (rm -rf /usr/local/lib/php/doc/phalcon || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: recode ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && (rm -rf /usr/local/lib/php/test/recode || true) \ - && (rm -rf /usr/local/lib/php/doc/recode || true) \ - \ -# ---- Installing PHP Extension: redis ---- - && pecl install redis \ - && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: rdkafka ---- - && pecl install rdkafka \ - && docker-php-ext-enable rdkafka \ - && (rm -rf /usr/local/lib/php/test/rdkafka || true) \ - && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: soap ---- - && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ - && (rm -rf /usr/local/lib/php/test/soap || true) \ - && (rm -rf /usr/local/lib/php/doc/soap || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: sqlsrv ---- - && pecl install sqlsrv-5.3.0 \ - && docker-php-ext-enable sqlsrv \ - && (rm -rf /usr/local/lib/php/test/sqlsrv || true) \ - && (rm -rf /usr/local/lib/php/doc/sqlsrv || true) \ - \ -# ---- Installing PHP Extension: swoole ---- - && pecl install swoole \ - && docker-php-ext-enable swoole \ - && (rm -rf /usr/local/lib/php/test/swoole || true) \ - && (rm -rf /usr/local/lib/php/doc/swoole || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- - && git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ - && cd /tmp/uploadprogress \ - && phpize \ - && ./configure --enable-uploadprogress \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ - && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: wddx ---- - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - && (rm -rf /usr/local/lib/php/test/wddx || true) \ - && (rm -rf /usr/local/lib/php/doc/wddx || true) \ - \ -# ---- Installing PHP Extension: xdebug ---- - && pecl install xdebug \ - && docker-php-ext-enable xdebug \ - && (rm -rf /usr/local/lib/php/test/xdebug || true) \ - && (rm -rf /usr/local/lib/php/doc/xdebug || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ + ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ - && update-ca-certificates \ - \ - && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + && update-ca-certificates + + +### +### Post Install +### +RUN set -eux \ + # ---------- oci8 ---------- + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.0' \ && /usr/local/sbin/php-fpm --test \ diff --git a/Dockerfiles/mods/Dockerfile-7.1 b/Dockerfiles/mods/Dockerfile-7.1 index b69aa6d..842c11b 100644 --- a/Dockerfiles/mods/Dockerfile-7.1 +++ b/Dockerfiles/mods/Dockerfile-7.1 @@ -1,108 +1,77 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:7.1-base -MAINTAINER "cytopia" - - -### -### Labels -### -LABEL \ - name="cytopia's PHP-FPM 7.1 Image" \ - image="devilbox/php-fpm" \ - tag="7.1-mods" \ - vendor="devilbox" \ - license="MIT" - - -### -### Envs -### -ENV BUILD_DEPS \ - alien \ - firebird-dev \ - freetds-dev \ - libaio-dev \ - libbz2-dev \ - libc-client-dev \ - libcurl4-openssl-dev \ - libenchant-dev \ - libevent-dev \ - libfbclient2 \ - libfreetype6-dev \ - libgmp-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libkrb5-dev \ - libldap2-dev \ - libmagickwand-dev \ - libmcrypt-dev \ - libmemcached-dev \ - libnghttp2-dev \ - libpcre3-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librabbitmq-dev \ - librdkafka-dev \ - librecode-dev \ - libsasl2-dev \ - libsnmp-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - snmp \ - unixodbc-dev \ - zlib1g-dev \ - ca-certificates \ - git - -ENV RUN_DEPS \ - libaio1 \ - libaspell15 \ - libc-client2007e \ - libenchant1c2a \ - libfbclient2 \ - libfreetype6 \ - libicu57 \ - libjpeg62-turbo \ - libmagickwand-6.q16-3 \ - libmcrypt4 \ - libmemcachedutil2 \ - libnghttp2-14 \ - libpng16-16 \ - libpq5 \ - librabbitmq4 \ - librdkafka1 \ - librecode0 \ - libsybdb5 \ - libtidy5 \ - libvpx4 \ - libwebp6 \ - libxpm4 \ - libxslt1.1 \ - libzip4 \ - snmp \ - unixodbc \ - ca-certificates +FROM devilbox/php-fpm:7.1-base as builder ### ### Install ### -RUN set -x \ +RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: ioncube ---- + alien \ + firebird-dev \ + freetds-dev \ + libaio-dev \ + libbz2-dev \ + libc-client-dev \ + libcurl4-openssl-dev \ + libenchant-dev \ + libevent-dev \ + libfbclient2 \ + libfreetype6-dev \ + libgmp-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libkrb5-dev \ + libldap2-dev \ + libmagickwand-dev \ + libmcrypt-dev \ + libmemcached-dev \ + libnghttp2-dev \ + libpcre3-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + librabbitmq-dev \ + librdkafka-dev \ + librecode-dev \ + libsasl2-dev \ + libsnmp-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libwebp-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + libzip-dev \ + snmp \ + unixodbc-dev \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ @@ -113,27 +82,43 @@ RUN set -x \ && rm -rf ioncube \ && rm -rf ioncube.tar.gz \ \ - && (rm -rf /usr/local/lib/php/test/ioncube || true) \ - && (rm -rf /usr/local/lib/php/doc/ioncube || true) \ - \ -# ---- Installing PHP Extension: amqp ---- + && true + + +# -------------------- Installing PHP Extension: amqp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Custom: Pecl command && echo "/usr" | pecl install amqp \ + # Enabling && docker-php-ext-enable amqp \ - && (rm -rf /usr/local/lib/php/test/amqp || true) \ - && (rm -rf /usr/local/lib/php/doc/amqp || true) \ - \ -# ---- Installing PHP Extension: apcu ---- + && true + + +# -------------------- Installing PHP Extension: apcu -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install apcu \ + # Enabling && docker-php-ext-enable apcu \ - && (rm -rf /usr/local/lib/php/test/apcu || true) \ - && (rm -rf /usr/local/lib/php/doc/apcu || true) \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: blackfire ---- + && true + + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && true + + +# -------------------- Installing PHP Extension: blackfire -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension && version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \ && mkdir -p /tmp/blackfire \ @@ -141,135 +126,223 @@ RUN set -x \ && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \ && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz \ \ - && (rm -rf /usr/local/lib/php/test/blackfire || true) \ - && (rm -rf /usr/local/lib/php/doc/blackfire || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: enchant ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && (rm -rf /usr/local/lib/php/test/enchant || true) \ - && (rm -rf /usr/local/lib/php/doc/enchant || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: gd ---- + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && true + + +# -------------------- Installing PHP Extension: enchant -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: gmp ---- + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && true + + +# -------------------- Installing PHP Extension: gmp -------------------- +RUN set -eux \ + # Generic pre-command && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ - && (rm -rf /usr/local/lib/php/test/gmp || true) \ - && (rm -rf /usr/local/lib/php/doc/gmp || true) \ - \ -# ---- Installing PHP Extension: igbinary ---- + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ + && true + + +# -------------------- Installing PHP Extension: igbinary -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install igbinary \ + # Enabling && docker-php-ext-enable igbinary \ - && (rm -rf /usr/local/lib/php/test/igbinary || true) \ - && (rm -rf /usr/local/lib/php/doc/igbinary || true) \ - \ -# ---- Installing PHP Extension: imagick ---- + && true + + +# -------------------- Installing PHP Extension: imagick -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install imagick \ + # Enabling && docker-php-ext-enable imagick \ - && (rm -rf /usr/local/lib/php/test/imagick || true) \ - && (rm -rf /usr/local/lib/php/doc/imagick || true) \ - \ -# ---- Installing PHP Extension: imap ---- + && true + + +# -------------------- Installing PHP Extension: imap -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ - && (rm -rf /usr/local/lib/php/test/imap || true) \ - && (rm -rf /usr/local/lib/php/doc/imap || true) \ - \ -# ---- Installing PHP Extension: interbase ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && (rm -rf /usr/local/lib/php/test/interbase || true) \ - && (rm -rf /usr/local/lib/php/doc/interbase || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ + && true + + +# -------------------- Installing PHP Extension: interbase -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: mcrypt ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ - && (rm -rf /usr/local/lib/php/test/mcrypt || true) \ - && (rm -rf /usr/local/lib/php/doc/mcrypt || true) \ - \ -# ---- Installing PHP Extension: msgpack ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ + && true + + +# -------------------- Installing PHP Extension: mcrypt -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mcrypt \ + && true + + +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install msgpack \ + # Enabling && docker-php-ext-enable msgpack \ - && (rm -rf /usr/local/lib/php/test/msgpack || true) \ - && (rm -rf /usr/local/lib/php/doc/msgpack || true) \ - \ -# ---- Installing PHP Extension: memcache ---- + && true + + +# -------------------- Installing PHP Extension: memcache -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ && cd /tmp/memcache \ + # Custom: Branch && git checkout origin/php7 \ + # Default: Install command && phpize \ && ./configure --with-zlib-dir=/usr \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ + # Enabling && docker-php-ext-enable memcache \ - && (rm -rf /usr/local/lib/php/test/memcache || true) \ - && (rm -rf /usr/local/lib/php/doc/memcache || true) \ - \ -# ---- Installing PHP Extension: memcached ---- + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install memcached \ + # Enabling && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongodb ---- + && true + + +# -------------------- Installing PHP Extension: mongodb -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install mongodb \ + # Enabling && docker-php-ext-enable mongodb \ - && (rm -rf /usr/local/lib/php/test/mongodb || true) \ - && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ - \ -# ---- Installing PHP Extension: mysqli ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && (rm -rf /usr/local/lib/php/test/mysqli || true) \ - && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ - \ -# ---- Installing PHP Extension: oauth ---- + && true + + +# -------------------- Installing PHP Extension: mysqli -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && true + + +# -------------------- Installing PHP Extension: oauth -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install oauth \ + # Enabling && docker-php-ext-enable oauth \ - && (rm -rf /usr/local/lib/php/test/oauth || true) \ - && (rm -rf /usr/local/lib/php/doc/oauth || true) \ - \ -# ---- Installing PHP Extension: oci8 ---- + && true + + +# -------------------- Installing PHP Extension: oci8 -------------------- +RUN set -eux \ + # Generic pre-command && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ @@ -283,41 +356,68 @@ RUN set -x \ && alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ - && /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ - && (rm -rf /usr/local/lib/php/test/oci8 || true) \ - && (rm -rf /usr/local/lib/php/doc/oci8 || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ + # Generic post-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_mysql ---- - && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ - && (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \ - \ -# ---- Installing PHP Extension: pdo_oci ---- + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && true + + +# -------------------- Installing PHP Extension: pdo_oci -------------------- +RUN set -eux \ + # Generic pre-command && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ @@ -333,175 +433,354 @@ RUN set -x \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ - && /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ - && (rm -rf /usr/local/lib/php/test/pdo_oci || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pdo_sqlsrv ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pdo_sqlsrv -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install pdo_sqlsrv \ + # Enabling && docker-php-ext-enable pdo_sqlsrv \ - && (rm -rf /usr/local/lib/php/test/pdo_sqlsrv || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_sqlsrv || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: phalcon ---- + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && true + + +# -------------------- Installing PHP Extension: phalcon -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ && cd /tmp/phalcon \ + # Custom: Branch && git checkout v3.4.2 \ + # Custom: Install command && cd build && ./install \ + # Enabling && docker-php-ext-enable phalcon \ - && (rm -rf /usr/local/lib/php/test/phalcon || true) \ - && (rm -rf /usr/local/lib/php/doc/phalcon || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: recode ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && (rm -rf /usr/local/lib/php/test/recode || true) \ - && (rm -rf /usr/local/lib/php/doc/recode || true) \ - \ -# ---- Installing PHP Extension: redis ---- + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install redis \ + # Enabling && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: rdkafka ---- + && true + + +# -------------------- Installing PHP Extension: rdkafka -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install rdkafka \ + # Enabling && docker-php-ext-enable rdkafka \ - && (rm -rf /usr/local/lib/php/test/rdkafka || true) \ - && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: soap ---- - && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ - && (rm -rf /usr/local/lib/php/test/soap || true) \ - && (rm -rf /usr/local/lib/php/doc/soap || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: sqlsrv ---- + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ + && true + + +# -------------------- Installing PHP Extension: soap -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure soap --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && true + + +# -------------------- Installing PHP Extension: sqlsrv -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install sqlsrv \ + # Enabling && docker-php-ext-enable sqlsrv \ - && (rm -rf /usr/local/lib/php/test/sqlsrv || true) \ - && (rm -rf /usr/local/lib/php/doc/sqlsrv || true) \ - \ -# ---- Installing PHP Extension: swoole ---- + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install swoole \ + # Enabling && docker-php-ext-enable swoole \ - && (rm -rf /usr/local/lib/php/test/swoole || true) \ - && (rm -rf /usr/local/lib/php/doc/swoole || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ && cd /tmp/uploadprogress \ + # Default: Install command && phpize \ && ./configure --enable-uploadprogress \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ + # Enabling && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: wddx ---- - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - && (rm -rf /usr/local/lib/php/test/wddx || true) \ - && (rm -rf /usr/local/lib/php/doc/wddx || true) \ - \ -# ---- Installing PHP Extension: xdebug ---- + && true + + +# -------------------- Installing PHP Extension: wddx -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && true + + +# -------------------- Installing PHP Extension: xdebug -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install xdebug \ + # Enabling && docker-php-ext-enable xdebug \ - && (rm -rf /usr/local/lib/php/test/xdebug || true) \ - && (rm -rf /usr/local/lib/php/doc/xdebug || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ - && rm -rf /var/lib/apt/lists/* \ - \ - && update-ca-certificates \ - \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:7.1-base as final +MAINTAINER "cytopia" + +### +### Labels +### +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.1-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-mods" + + +### +### Copy artifacts from builder +### +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ + + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + libaio1 \ + libaspell15 \ + libc-client2007e \ + libenchant1c2a \ + libfbclient2 \ + libfreetype6 \ + libicu63 \ + libjpeg62-turbo \ + libmagickwand-6.q16-6 \ + libmcrypt4 \ + libmemcachedutil2 \ + libnghttp2-14 \ + libpng16-16 \ + libpq5 \ + librabbitmq4 \ + librdkafka1 \ + librecode0 \ + libsybdb5 \ + libtidy5deb1 \ + libvpx5 \ + libwebp6 \ + libxpm4 \ + libxslt1.1 \ + libzip4 \ + snmp \ + unixodbc \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* \ + \ + && update-ca-certificates + + +### +### Post Install +### +RUN set -eux \ + # ---------- oci8 ---------- + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.1' \ && /usr/local/sbin/php-fpm --test \ diff --git a/Dockerfiles/mods/Dockerfile-7.2 b/Dockerfiles/mods/Dockerfile-7.2 index 326d5ac..fbfb088 100644 --- a/Dockerfiles/mods/Dockerfile-7.2 +++ b/Dockerfiles/mods/Dockerfile-7.2 @@ -1,108 +1,77 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:7.2-base -MAINTAINER "cytopia" - - -### -### Labels -### -LABEL \ - name="cytopia's PHP-FPM 7.2 Image" \ - image="devilbox/php-fpm" \ - tag="7.2-mods" \ - vendor="devilbox" \ - license="MIT" - - -### -### Envs -### -ENV BUILD_DEPS \ - alien \ - firebird-dev \ - freetds-dev \ - libaio-dev \ - libbz2-dev \ - libc-client-dev \ - libcurl4-openssl-dev \ - libenchant-dev \ - libevent-dev \ - libfbclient2 \ - libfreetype6-dev \ - libgmp-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libkrb5-dev \ - libldap2-dev \ - libmagickwand-dev \ - libmcrypt-dev \ - libmemcached-dev \ - libnghttp2-dev \ - libpcre3-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librabbitmq-dev \ - librdkafka-dev \ - librecode-dev \ - libsasl2-dev \ - libsnmp-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - snmp \ - unixodbc-dev \ - zlib1g-dev \ - ca-certificates \ - git - -ENV RUN_DEPS \ - libaio1 \ - libaspell15 \ - libc-client2007e \ - libenchant1c2a \ - libfbclient2 \ - libfreetype6 \ - libicu57 \ - libjpeg62-turbo \ - libmagickwand-6.q16-3 \ - libmcrypt4 \ - libmemcachedutil2 \ - libnghttp2-14 \ - libpng16-16 \ - libpq5 \ - librabbitmq4 \ - librdkafka1 \ - librecode0 \ - libsybdb5 \ - libtidy5 \ - libvpx4 \ - libwebp6 \ - libxpm4 \ - libxslt1.1 \ - libzip4 \ - snmp \ - unixodbc \ - ca-certificates +FROM devilbox/php-fpm:7.2-base as builder ### ### Install ### -RUN set -x \ +RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: ioncube ---- + alien \ + firebird-dev \ + freetds-dev \ + libaio-dev \ + libbz2-dev \ + libc-client-dev \ + libcurl4-openssl-dev \ + libenchant-dev \ + libevent-dev \ + libfbclient2 \ + libfreetype6-dev \ + libgmp-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libkrb5-dev \ + libldap2-dev \ + libmagickwand-dev \ + libmcrypt-dev \ + libmemcached-dev \ + libnghttp2-dev \ + libpcre3-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + librabbitmq-dev \ + librdkafka-dev \ + librecode-dev \ + libsasl2-dev \ + libsnmp-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libwebp-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + libzip-dev \ + snmp \ + unixodbc-dev \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: ioncube -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension && EXTENSION_DIR="$( php -i | grep ^extension_dir | awk -F '=>' '{print $2}' | xargs )" \ && if [ ! -d "${EXTENSION_DIR}" ]; then mkdir -p "${EXTENSION_DIR}"; fi \ && curl https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz -L -o ioncube.tar.gz \ @@ -113,27 +82,43 @@ RUN set -x \ && rm -rf ioncube \ && rm -rf ioncube.tar.gz \ \ - && (rm -rf /usr/local/lib/php/test/ioncube || true) \ - && (rm -rf /usr/local/lib/php/doc/ioncube || true) \ - \ -# ---- Installing PHP Extension: amqp ---- + && true + + +# -------------------- Installing PHP Extension: amqp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Custom: Pecl command && echo "/usr" | pecl install amqp \ + # Enabling && docker-php-ext-enable amqp \ - && (rm -rf /usr/local/lib/php/test/amqp || true) \ - && (rm -rf /usr/local/lib/php/doc/amqp || true) \ - \ -# ---- Installing PHP Extension: apcu ---- + && true + + +# -------------------- Installing PHP Extension: apcu -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install apcu \ + # Enabling && docker-php-ext-enable apcu \ - && (rm -rf /usr/local/lib/php/test/apcu || true) \ - && (rm -rf /usr/local/lib/php/doc/apcu || true) \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: blackfire ---- + && true + + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && true + + +# -------------------- Installing PHP Extension: blackfire -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension && version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \ && mkdir -p /tmp/blackfire \ @@ -141,136 +126,226 @@ RUN set -x \ && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \ && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz \ \ - && (rm -rf /usr/local/lib/php/test/blackfire || true) \ - && (rm -rf /usr/local/lib/php/doc/blackfire || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: enchant ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && (rm -rf /usr/local/lib/php/test/enchant || true) \ - && (rm -rf /usr/local/lib/php/doc/enchant || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: gd ---- + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && true + + +# -------------------- Installing PHP Extension: enchant -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: gmp ---- + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && true + + +# -------------------- Installing PHP Extension: gmp -------------------- +RUN set -eux \ + # Generic pre-command && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ - && (rm -rf /usr/local/lib/php/test/gmp || true) \ - && (rm -rf /usr/local/lib/php/doc/gmp || true) \ - \ -# ---- Installing PHP Extension: igbinary ---- + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ + && true + + +# -------------------- Installing PHP Extension: igbinary -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install igbinary \ + # Enabling && docker-php-ext-enable igbinary \ - && (rm -rf /usr/local/lib/php/test/igbinary || true) \ - && (rm -rf /usr/local/lib/php/doc/igbinary || true) \ - \ -# ---- Installing PHP Extension: imagick ---- + && true + + +# -------------------- Installing PHP Extension: imagick -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install imagick \ + # Enabling && docker-php-ext-enable imagick \ - && (rm -rf /usr/local/lib/php/test/imagick || true) \ - && (rm -rf /usr/local/lib/php/doc/imagick || true) \ - \ -# ---- Installing PHP Extension: imap ---- + && true + + +# -------------------- Installing PHP Extension: imap -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ - && (rm -rf /usr/local/lib/php/test/imap || true) \ - && (rm -rf /usr/local/lib/php/doc/imap || true) \ - \ -# ---- Installing PHP Extension: interbase ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && (rm -rf /usr/local/lib/php/test/interbase || true) \ - && (rm -rf /usr/local/lib/php/doc/interbase || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ + && true + + +# -------------------- Installing PHP Extension: interbase -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: mcrypt ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ + && true + + +# -------------------- Installing PHP Extension: mcrypt -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command && pecl install mcrypt-1.0.1 \ + # Enabling && docker-php-ext-enable mcrypt \ - && (rm -rf /usr/local/lib/php/test/mcrypt || true) \ - && (rm -rf /usr/local/lib/php/doc/mcrypt || true) \ - \ -# ---- Installing PHP Extension: msgpack ---- + && true + + +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install msgpack \ + # Enabling && docker-php-ext-enable msgpack \ - && (rm -rf /usr/local/lib/php/test/msgpack || true) \ - && (rm -rf /usr/local/lib/php/doc/msgpack || true) \ - \ -# ---- Installing PHP Extension: memcache ---- + && true + + +# -------------------- Installing PHP Extension: memcache -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/websupport-sk/pecl-memcache /tmp/memcache \ && cd /tmp/memcache \ + # Custom: Branch && git checkout origin/php7 \ + # Default: Install command && phpize \ && ./configure --with-zlib-dir=/usr \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ + # Enabling && docker-php-ext-enable memcache \ - && (rm -rf /usr/local/lib/php/test/memcache || true) \ - && (rm -rf /usr/local/lib/php/doc/memcache || true) \ - \ -# ---- Installing PHP Extension: memcached ---- + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install memcached \ + # Enabling && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongodb ---- + && true + + +# -------------------- Installing PHP Extension: mongodb -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install mongodb \ + # Enabling && docker-php-ext-enable mongodb \ - && (rm -rf /usr/local/lib/php/test/mongodb || true) \ - && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ - \ -# ---- Installing PHP Extension: mysqli ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && (rm -rf /usr/local/lib/php/test/mysqli || true) \ - && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ - \ -# ---- Installing PHP Extension: oauth ---- + && true + + +# -------------------- Installing PHP Extension: mysqli -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && true + + +# -------------------- Installing PHP Extension: oauth -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install oauth \ + # Enabling && docker-php-ext-enable oauth \ - && (rm -rf /usr/local/lib/php/test/oauth || true) \ - && (rm -rf /usr/local/lib/php/doc/oauth || true) \ - \ -# ---- Installing PHP Extension: oci8 ---- + && true + + +# -------------------- Installing PHP Extension: oci8 -------------------- +RUN set -eux \ + # Generic pre-command && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ @@ -284,41 +359,68 @@ RUN set -x \ && alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ - && /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ - && (rm -rf /usr/local/lib/php/test/oci8 || true) \ - && (rm -rf /usr/local/lib/php/doc/oci8 || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ + # Generic post-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_mysql ---- - && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ - && (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \ - \ -# ---- Installing PHP Extension: pdo_oci ---- + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && true + + +# -------------------- Installing PHP Extension: pdo_oci -------------------- +RUN set -eux \ + # Generic pre-command && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ @@ -334,175 +436,355 @@ RUN set -x \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ - && /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ - && (rm -rf /usr/local/lib/php/test/pdo_oci || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pdo_sqlsrv ---- + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pdo_sqlsrv -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install pdo_sqlsrv \ + # Enabling && docker-php-ext-enable pdo_sqlsrv \ - && (rm -rf /usr/local/lib/php/test/pdo_sqlsrv || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_sqlsrv || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: phalcon ---- + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && true + + +# -------------------- Installing PHP Extension: phalcon -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension && git clone https://github.com/phalcon/cphalcon /tmp/phalcon \ && cd /tmp/phalcon \ + # Custom: Branch && git checkout $(git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname)' refs/tags | sort -n | sed 's/^.*tags\///g' | grep -E '^v[.0-9]+$' | tail -1) \ + # Custom: Install command && cd build && ./install \ + # Enabling && docker-php-ext-enable phalcon \ - && (rm -rf /usr/local/lib/php/test/phalcon || true) \ - && (rm -rf /usr/local/lib/php/doc/phalcon || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: recode ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && (rm -rf /usr/local/lib/php/test/recode || true) \ - && (rm -rf /usr/local/lib/php/doc/recode || true) \ - \ -# ---- Installing PHP Extension: redis ---- + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install redis \ + # Enabling && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: rdkafka ---- + && true + + +# -------------------- Installing PHP Extension: rdkafka -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install rdkafka \ + # Enabling && docker-php-ext-enable rdkafka \ - && (rm -rf /usr/local/lib/php/test/rdkafka || true) \ - && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: soap ---- - && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ - && (rm -rf /usr/local/lib/php/test/soap || true) \ - && (rm -rf /usr/local/lib/php/doc/soap || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: sqlsrv ---- + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ + && true + + +# -------------------- Installing PHP Extension: soap -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure soap --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && true + + +# -------------------- Installing PHP Extension: sqlsrv -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install sqlsrv \ + # Enabling && docker-php-ext-enable sqlsrv \ - && (rm -rf /usr/local/lib/php/test/sqlsrv || true) \ - && (rm -rf /usr/local/lib/php/doc/sqlsrv || true) \ - \ -# ---- Installing PHP Extension: swoole ---- + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install swoole \ + # Enabling && docker-php-ext-enable swoole \ - && (rm -rf /usr/local/lib/php/test/swoole || true) \ - && (rm -rf /usr/local/lib/php/doc/swoole || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ && cd /tmp/uploadprogress \ + # Default: Install command && phpize \ && ./configure --enable-uploadprogress \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ + # Enabling && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: wddx ---- - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - && (rm -rf /usr/local/lib/php/test/wddx || true) \ - && (rm -rf /usr/local/lib/php/doc/wddx || true) \ - \ -# ---- Installing PHP Extension: xdebug ---- + && true + + +# -------------------- Installing PHP Extension: wddx -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && true + + +# -------------------- Installing PHP Extension: xdebug -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install xdebug \ + # Enabling && docker-php-ext-enable xdebug \ - && (rm -rf /usr/local/lib/php/test/xdebug || true) \ - && (rm -rf /usr/local/lib/php/doc/xdebug || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ - && rm -rf /var/lib/apt/lists/* \ - \ - && update-ca-certificates \ - \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:7.2-base as final +MAINTAINER "cytopia" + +### +### Labels +### +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.2-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-mods" + + +### +### Copy artifacts from builder +### +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ + + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + libaio1 \ + libaspell15 \ + libc-client2007e \ + libenchant1c2a \ + libfbclient2 \ + libfreetype6 \ + libicu63 \ + libjpeg62-turbo \ + libmagickwand-6.q16-6 \ + libmcrypt4 \ + libmemcachedutil2 \ + libnghttp2-14 \ + libpng16-16 \ + libpq5 \ + librabbitmq4 \ + librdkafka1 \ + librecode0 \ + libsybdb5 \ + libtidy5deb1 \ + libvpx5 \ + libwebp6 \ + libxpm4 \ + libxslt1.1 \ + libzip4 \ + snmp \ + unixodbc \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* \ + \ + && update-ca-certificates + + +### +### Post Install +### +RUN set -eux \ + # ---------- oci8 ---------- + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.2' \ && /usr/local/sbin/php-fpm --test \ diff --git a/Dockerfiles/mods/Dockerfile-7.3 b/Dockerfiles/mods/Dockerfile-7.3 index 7478da5..703e17f 100644 --- a/Dockerfiles/mods/Dockerfile-7.3 +++ b/Dockerfiles/mods/Dockerfile-7.3 @@ -1,120 +1,97 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:7.3-base -MAINTAINER "cytopia" - - -### -### Labels -### -LABEL \ - name="cytopia's PHP-FPM 7.3 Image" \ - image="devilbox/php-fpm" \ - tag="7.3-mods" \ - vendor="devilbox" \ - license="MIT" - - -### -### Envs -### -ENV BUILD_DEPS \ - alien \ - cmake \ - firebird-dev \ - freetds-dev \ - libaio-dev \ - libbz2-dev \ - libc-client-dev \ - libcurl4-openssl-dev \ - libenchant-dev \ - libevent-dev \ - libfbclient2 \ - libfreetype6-dev \ - libgmp-dev \ - libhiredis-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libkrb5-dev \ - libldap2-dev \ - libmagickwand-dev \ - libmcrypt-dev \ - libmemcached-dev \ - libnghttp2-dev \ - libpcre3-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librdkafka-dev \ - librecode-dev \ - libsasl2-dev \ - libsnmp-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - snmp \ - unixodbc-dev \ - zlib1g-dev \ - ca-certificates \ - git - -ENV RUN_DEPS \ - libaio1 \ - libaspell15 \ - libc-client2007e \ - libenchant1c2a \ - libfbclient2 \ - libfreetype6 \ - libhiredis0.13 \ - libicu57 \ - libjpeg62-turbo \ - libmagickwand-6.q16-3 \ - libmcrypt4 \ - libmemcachedutil2 \ - libnghttp2-14 \ - libpng16-16 \ - libpq5 \ - librdkafka1 \ - librecode0 \ - libsybdb5 \ - libtidy5 \ - libvpx4 \ - libwebp6 \ - libxpm4 \ - libxslt1.1 \ - libzip4 \ - snmp \ - unixodbc \ - ca-certificates +FROM devilbox/php-fpm:7.3-base as builder ### ### Install ### -RUN set -x \ +RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: apcu ---- + alien \ + cmake \ + firebird-dev \ + freetds-dev \ + libaio-dev \ + libbz2-dev \ + libc-client-dev \ + libcurl4-openssl-dev \ + libenchant-dev \ + libevent-dev \ + libfbclient2 \ + libfreetype6-dev \ + libgmp-dev \ + libhiredis-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libkrb5-dev \ + libldap2-dev \ + libmagickwand-dev \ + libmcrypt-dev \ + libmemcached-dev \ + libnghttp2-dev \ + libpcre3-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + librdkafka-dev \ + librecode-dev \ + libsasl2-dev \ + libsnmp-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libwebp-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + libzip-dev \ + snmp \ + unixodbc-dev \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: apcu -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install apcu \ + # Enabling && docker-php-ext-enable apcu \ - && (rm -rf /usr/local/lib/php/test/apcu || true) \ - && (rm -rf /usr/local/lib/php/doc/apcu || true) \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: blackfire ---- + && true + + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && true + + +# -------------------- Installing PHP Extension: blackfire -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Custom extension && version=$(php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;") \ && curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$version \ && mkdir -p /tmp/blackfire \ @@ -122,124 +99,208 @@ RUN set -x \ && mv /tmp/blackfire/blackfire-*.so $(php -r "echo ini_get('extension_dir');")/blackfire.so \ && rm -rf /tmp/blackfire /tmp/blackfire-probe.tar.gz \ \ - && (rm -rf /usr/local/lib/php/test/blackfire || true) \ - && (rm -rf /usr/local/lib/php/doc/blackfire || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: enchant ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ - && (rm -rf /usr/local/lib/php/test/enchant || true) \ - && (rm -rf /usr/local/lib/php/doc/enchant || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: gd ---- + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && true + + +# -------------------- Installing PHP Extension: enchant -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) enchant \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: gmp ---- + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && true + + +# -------------------- Installing PHP Extension: gmp -------------------- +RUN set -eux \ + # Generic pre-command && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ - && (rm -rf /usr/local/lib/php/test/gmp || true) \ - && (rm -rf /usr/local/lib/php/doc/gmp || true) \ - \ -# ---- Installing PHP Extension: igbinary ---- + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ + && true + + +# -------------------- Installing PHP Extension: igbinary -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install igbinary \ + # Enabling && docker-php-ext-enable igbinary \ - && (rm -rf /usr/local/lib/php/test/igbinary || true) \ - && (rm -rf /usr/local/lib/php/doc/igbinary || true) \ - \ -# ---- Installing PHP Extension: imagick ---- + && true + + +# -------------------- Installing PHP Extension: imagick -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install imagick \ + # Enabling && docker-php-ext-enable imagick \ - && (rm -rf /usr/local/lib/php/test/imagick || true) \ - && (rm -rf /usr/local/lib/php/doc/imagick || true) \ - \ -# ---- Installing PHP Extension: imap ---- + && true + + +# -------------------- Installing PHP Extension: imap -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libkrb5* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ - && (rm -rf /usr/local/lib/php/test/imap || true) \ - && (rm -rf /usr/local/lib/php/doc/imap || true) \ - \ -# ---- Installing PHP Extension: interbase ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ - && (rm -rf /usr/local/lib/php/test/interbase || true) \ - && (rm -rf /usr/local/lib/php/doc/interbase || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure imap --with-kerberos --with-imap-ssl --with-imap \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) imap \ + && true + + +# -------------------- Installing PHP Extension: interbase -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) interbase \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: mcrypt ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ + && true + + +# -------------------- Installing PHP Extension: mcrypt -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command && pecl install mcrypt-1.0.2 \ + # Enabling && docker-php-ext-enable mcrypt \ - && (rm -rf /usr/local/lib/php/test/mcrypt || true) \ - && (rm -rf /usr/local/lib/php/doc/mcrypt || true) \ - \ -# ---- Installing PHP Extension: msgpack ---- + && true + + +# -------------------- Installing PHP Extension: msgpack -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install msgpack \ + # Enabling && docker-php-ext-enable msgpack \ - && (rm -rf /usr/local/lib/php/test/msgpack || true) \ - && (rm -rf /usr/local/lib/php/doc/msgpack || true) \ - \ -# ---- Installing PHP Extension: memcached ---- + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install memcached \ + # Enabling && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongodb ---- + && true + + +# -------------------- Installing PHP Extension: mongodb -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install mongodb \ + # Enabling && docker-php-ext-enable mongodb \ - && (rm -rf /usr/local/lib/php/test/mongodb || true) \ - && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ - \ -# ---- Installing PHP Extension: mysqli ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && (rm -rf /usr/local/lib/php/test/mysqli || true) \ - && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ - \ -# ---- Installing PHP Extension: oauth ---- + && true + + +# -------------------- Installing PHP Extension: mysqli -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && true + + +# -------------------- Installing PHP Extension: oauth -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install oauth \ + # Enabling && docker-php-ext-enable oauth \ - && (rm -rf /usr/local/lib/php/test/oauth || true) \ - && (rm -rf /usr/local/lib/php/doc/oauth || true) \ - \ -# ---- Installing PHP Extension: oci8 ---- + && true + + +# -------------------- Installing PHP Extension: oci8 -------------------- +RUN set -eux \ + # Generic pre-command && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ @@ -253,41 +314,68 @@ RUN set -x \ && alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ - && /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ - && (rm -rf /usr/local/lib/php/test/oci8 || true) \ - && (rm -rf /usr/local/lib/php/doc/oci8 || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ + # Generic post-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_mysql ---- - && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ - && (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \ - \ -# ---- Installing PHP Extension: pdo_oci ---- + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && true + + +# -------------------- Installing PHP Extension: pdo_oci -------------------- +RUN set -eux \ + # Generic pre-command && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ @@ -303,81 +391,136 @@ RUN set -x \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ - && /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ - && (rm -rf /usr/local/lib/php/test/pdo_oci || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pdo_sqlsrv ---- + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pdo_sqlsrv -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install pdo_sqlsrv \ + # Enabling && docker-php-ext-enable pdo_sqlsrv \ - && (rm -rf /usr/local/lib/php/test/pdo_sqlsrv || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_sqlsrv || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: recode ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && (rm -rf /usr/local/lib/php/test/recode || true) \ - && (rm -rf /usr/local/lib/php/doc/recode || true) \ - \ -# ---- Installing PHP Extension: redis ---- + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + +# -------------------- Installing PHP Extension: recode -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install redis \ + # Enabling && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: rdkafka ---- + && true + + +# -------------------- Installing PHP Extension: rdkafka -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install rdkafka \ + # Enabling && docker-php-ext-enable rdkafka \ - && (rm -rf /usr/local/lib/php/test/rdkafka || true) \ - && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: soap ---- - && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ - && (rm -rf /usr/local/lib/php/test/soap || true) \ - && (rm -rf /usr/local/lib/php/doc/soap || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: sqlsrv ---- + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ + && true + + +# -------------------- Installing PHP Extension: soap -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure soap --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && true + + +# -------------------- Installing PHP Extension: sqlsrv -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install sqlsrv \ + # Enabling && docker-php-ext-enable sqlsrv \ - && (rm -rf /usr/local/lib/php/test/sqlsrv || true) \ - && (rm -rf /usr/local/lib/php/doc/sqlsrv || true) \ - \ -# ---- Installing PHP Extension: swoole ---- + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/swoole/swoole-src /tmp/swoole \ && cd /tmp/swoole \ + # Custom: Branch && git checkout $(git describe --abbrev=0 --tags) \ + # Custom: Install command && phpize \ && ./configure \ --enable-openssl \ @@ -388,93 +531,213 @@ RUN set -x \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ \ + # Enabling && docker-php-ext-enable swoole \ - && (rm -rf /usr/local/lib/php/test/swoole || true) \ - && (rm -rf /usr/local/lib/php/doc/swoole || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ && cd /tmp/uploadprogress \ + # Default: Install command && phpize \ && ./configure --enable-uploadprogress \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ + # Enabling && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: wddx ---- - && /usr/local/bin/docker-php-ext-configure wddx --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ - && (rm -rf /usr/local/lib/php/test/wddx || true) \ - && (rm -rf /usr/local/lib/php/doc/wddx || true) \ - \ -# ---- Installing PHP Extension: xdebug ---- + && true + + +# -------------------- Installing PHP Extension: wddx -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure wddx --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) wddx \ + && true + + +# -------------------- Installing PHP Extension: xdebug -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command && pecl install xdebug \ + # Enabling && docker-php-ext-enable xdebug \ - && (rm -rf /usr/local/lib/php/test/xdebug || true) \ - && (rm -rf /usr/local/lib/php/doc/xdebug || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ - && rm -rf /var/lib/apt/lists/* \ - \ - && update-ca-certificates \ - \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:7.3-base as final +MAINTAINER "cytopia" + +### +### Labels +### +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.3-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-mods" + + +### +### Copy artifacts from builder +### +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ + + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + libaio1 \ + libaspell15 \ + libc-client2007e \ + libenchant1c2a \ + libfbclient2 \ + libfreetype6 \ + libhiredis0.14 \ + libicu63 \ + libjpeg62-turbo \ + libmagickwand-6.q16-6 \ + libmcrypt4 \ + libmemcachedutil2 \ + libnghttp2-14 \ + libpng16-16 \ + libpq5 \ + librdkafka1 \ + librecode0 \ + libsybdb5 \ + libtidy5deb1 \ + libvpx5 \ + libwebp6 \ + libxpm4 \ + libxslt1.1 \ + libzip4 \ + snmp \ + unixodbc \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* \ + \ + && update-ca-certificates + + +### +### Post Install +### +RUN set -eux \ + # ---------- oci8 ---------- + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.3' \ && /usr/local/sbin/php-fpm --test \ diff --git a/Dockerfiles/mods/Dockerfile-7.4 b/Dockerfiles/mods/Dockerfile-7.4 index cf51d0c..e0ada70 100644 --- a/Dockerfiles/mods/Dockerfile-7.4 +++ b/Dockerfiles/mods/Dockerfile-7.4 @@ -1,62 +1,570 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:7.4-base -MAINTAINER "cytopia" +FROM devilbox/php-fpm:7.4-base as builder +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + alien \ + cmake \ + firebird-dev \ + freetds-dev \ + libaio-dev \ + libbz2-dev \ + libevent-dev \ + libfbclient2 \ + libffi-dev \ + libfreetype6-dev \ + libgmp-dev \ + libhiredis-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libldap2-dev \ + libmemcached-dev \ + libnghttp2-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + librdkafka-dev \ + libsasl2-dev \ + libsnmp-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libwebp-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + libzip-dev \ + snmp \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && true + + +# -------------------- Installing PHP Extension: ffi -------------------- +RUN set -eux \ + # Installation: Generic + # Type: GIT extension + && git clone https://github.com/dstogov/php-ffi /tmp/ffi \ + && cd /tmp/ffi \ + # Custom: Install command + && phpize \ +&& ./configure --with-ffi \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ + \ + # Enabling + && docker-php-ext-enable ffi \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && true + + +# -------------------- Installing PHP Extension: gmp -------------------- +RUN set -eux \ + # Generic pre-command + && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ + && true + + +# -------------------- Installing PHP Extension: igbinary -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install igbinary \ + # Enabling + && docker-php-ext-enable igbinary \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \ + && cd /tmp/memcached \ + # Custom: Branch + && git checkout master \ + # Custom: Install command + && phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install \ + # Enabling + && docker-php-ext-enable memcached \ + && true + + +# -------------------- Installing PHP Extension: mongodb -------------------- +RUN set -eux \ + # Installation: Generic + # Type: PECL extension + # Default: Pecl command + && pecl install mongodb \ + # Enabling + && docker-php-ext-enable mongodb \ + && true + + +# -------------------- Installing PHP Extension: mysqli -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && true + + +# -------------------- Installing PHP Extension: oci8 -------------------- +RUN set -eux \ + # Generic pre-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +\ +&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ + # Generic post-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command + && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && true + + +# -------------------- Installing PHP Extension: pdo_oci -------------------- +RUN set -eux \ + # Generic pre-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +\ +&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ + https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ +&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/phpredis/phpredis /tmp/redis \ + && cd /tmp/redis \ + # Custom: Install command + && phpize \ +&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis.c \ +&& sed -i'' 's/ZEND_ACC_DTOR | //g' redis.c \ +&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis_cluster.c \ +&& ./configure --enable-redis \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ + \ + # Enabling + && docker-php-ext-enable redis \ + && true + + +# -------------------- Installing PHP Extension: rdkafka -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: PECL extension + # Default: Pecl command + && pecl install rdkafka-3.1.2 \ + # Enabling + && docker-php-ext-enable rdkafka \ + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ + && true + + +# -------------------- Installing PHP Extension: soap -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure soap --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && true + + +# -------------------- Installing PHP Extension: swoole -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/swoole/swoole-src /tmp/swoole \ + && cd /tmp/swoole \ + # Custom: Branch + && git checkout master \ + # Custom: Install command + && phpize \ +&& ./configure \ + --enable-openssl \ + --enable-sockets \ + --enable-http2 \ + --enable-mysqlnd \ + --enable-coroutine-postgresql \ +&& make -j$(getconf _NPROCESSORS_ONLN) \ +&& make install \ + \ + # Enabling + && docker-php-ext-enable swoole \ + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension + && git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ + && cd /tmp/uploadprogress \ + # Default: Install command + && phpize \ + && ./configure --enable-uploadprogress \ + && make -j$(getconf _NPROCESSORS_ONLN) \ + && make install \ + # Enabling + && docker-php-ext-enable uploadprogress \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ + && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:7.4-base as final +MAINTAINER "cytopia" + ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.4 Image" \ - image="devilbox/php-fpm" \ - tag="7.4-mods" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.4-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-mods" ### -### Envs +### Copy artifacts from builder ### -ENV BUILD_DEPS \ - alien \ - cmake \ - firebird-dev \ - freetds-dev \ - libaio-dev \ - libbz2-dev \ - libevent-dev \ - libfbclient2 \ - libffi-dev \ - libfreetype6-dev \ - libgmp-dev \ - libhiredis-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libldap2-dev \ - libmemcached-dev \ - libnghttp2-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librdkafka-dev \ - librecode-dev \ - libsasl2-dev \ - libsnmp-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - snmp \ - zlib1g-dev \ - ca-certificates \ - git +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ -ENV RUN_DEPS \ + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ libaio1 \ libaspell15 \ libfbclient2 \ @@ -70,7 +578,6 @@ ENV RUN_DEPS \ libpng16-16 \ libpq5 \ librdkafka1 \ - librecode0 \ libsybdb5 \ libtidy5 \ libvpx4 \ @@ -79,333 +586,29 @@ ENV RUN_DEPS \ libxslt1.1 \ libzip4 \ snmp \ - ca-certificates - - -### -### Install -### -RUN set -x \ - && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: ffi ---- - && git clone https://github.com/dstogov/php-ffi /tmp/ffi \ - && cd /tmp/ffi \ - && phpize \ -&& ./configure --with-ffi \ -&& make -j$(getconf _NPROCESSORS_ONLN) \ -&& make install \ - \ - && docker-php-ext-enable ffi \ - && (rm -rf /usr/local/lib/php/test/ffi || true) \ - && (rm -rf /usr/local/lib/php/doc/ffi || true) \ - \ -# ---- Installing PHP Extension: gd ---- - && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: gmp ---- - && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ - && (rm -rf /usr/local/lib/php/test/gmp || true) \ - && (rm -rf /usr/local/lib/php/doc/gmp || true) \ - \ -# ---- Installing PHP Extension: igbinary ---- - && pecl install igbinary \ - && docker-php-ext-enable igbinary \ - && (rm -rf /usr/local/lib/php/test/igbinary || true) \ - && (rm -rf /usr/local/lib/php/doc/igbinary || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- - && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: memcached ---- - && git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \ - && cd /tmp/memcached \ - && git checkout master \ - && phpize && ./configure --enable-memcached && make -j$(getconf _NPROCESSORS_ONLN) && make install \ - && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongodb ---- - && pecl install mongodb \ - && docker-php-ext-enable mongodb \ - && (rm -rf /usr/local/lib/php/test/mongodb || true) \ - && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ - \ -# ---- Installing PHP Extension: mysqli ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && (rm -rf /usr/local/lib/php/test/mysqli || true) \ - && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ - \ -# ---- Installing PHP Extension: oci8 ---- - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ -&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ -&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ -\ -&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ - \ - && /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ - && (rm -rf /usr/local/lib/php/test/oci8 || true) \ - && (rm -rf /usr/local/lib/php/doc/oci8 || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- - && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_mysql ---- - && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ - && (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \ - \ -# ---- Installing PHP Extension: pdo_oci ---- - && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ -&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ -&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ -\ -&& rpm --import http://yum.oracle.com/RPM-GPG-KEY-oracle-ol7 \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& curl -o /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ - https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/getPackage/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ - \ - && /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ - && (rm -rf /usr/local/lib/php/test/pdo_oci || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: recode ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && (rm -rf /usr/local/lib/php/test/recode || true) \ - && (rm -rf /usr/local/lib/php/doc/recode || true) \ - \ -# ---- Installing PHP Extension: redis ---- - && git clone https://github.com/phpredis/phpredis /tmp/redis \ - && cd /tmp/redis \ - && phpize \ -&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis.c \ -&& sed -i'' 's/ZEND_ACC_DTOR | //g' redis.c \ -&& sed -i'' 's/ZEND_ACC_CTOR | //g' redis_cluster.c \ -&& ./configure --enable-redis \ -&& make -j$(getconf _NPROCESSORS_ONLN) \ -&& make install \ - \ - && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: rdkafka ---- - && pecl install rdkafka \ - && docker-php-ext-enable rdkafka \ - && (rm -rf /usr/local/lib/php/test/rdkafka || true) \ - && (rm -rf /usr/local/lib/php/doc/rdkafka || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: soap ---- - && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ - && (rm -rf /usr/local/lib/php/test/soap || true) \ - && (rm -rf /usr/local/lib/php/doc/soap || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: swoole ---- - && git clone https://github.com/swoole/swoole-src /tmp/swoole \ - && cd /tmp/swoole \ - && git checkout master \ - && phpize \ -&& ./configure \ - --enable-openssl \ - --enable-sockets \ - --enable-http2 \ - --enable-mysqlnd \ - --enable-coroutine-postgresql \ -&& make -j$(getconf _NPROCESSORS_ONLN) \ -&& make install \ - \ - && docker-php-ext-enable swoole \ - && (rm -rf /usr/local/lib/php/test/swoole || true) \ - && (rm -rf /usr/local/lib/php/doc/swoole || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- - && git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ - && cd /tmp/uploadprogress \ - && phpize \ - && ./configure --enable-uploadprogress \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ - && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ + ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ - && update-ca-certificates \ - \ - && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + && update-ca-certificates + + +### +### Post Install +### +RUN set -eux \ + # ---------- oci8 ---------- + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^7.4' \ && /usr/local/sbin/php-fpm --test \ @@ -508,8 +711,6 @@ RUN set -x \ && php -m | grep -oiE '^pspell$' \ && php-fpm -m | grep -oiE '^pspell$' \ && php -m | grep -oiE '^readline$' \ - && php -m | grep -oiE '^recode$' \ - && php-fpm -m | grep -oiE '^recode$' \ && php -m | grep -oiE '^redis$' \ && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^reflection$' \ diff --git a/Dockerfiles/mods/Dockerfile-8.0 b/Dockerfiles/mods/Dockerfile-8.0 index dacf6d5..cc64da9 100644 --- a/Dockerfiles/mods/Dockerfile-8.0 +++ b/Dockerfiles/mods/Dockerfile-8.0 @@ -1,149 +1,163 @@ # Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:8.0-base -MAINTAINER "cytopia" - - -### -### Labels -### -LABEL \ - name="cytopia's PHP-FPM 8.0 Image" \ - image="devilbox/php-fpm" \ - tag="8.0-mods" \ - vendor="devilbox" \ - license="MIT" - - -### -### Envs -### -ENV BUILD_DEPS \ - alien \ - firebird-dev \ - freetds-dev \ - libaio-dev \ - libbz2-dev \ - libevent-dev \ - libfbclient2 \ - libfreetype6-dev \ - libgmp-dev \ - libib-util \ - libicu-dev \ - libjpeg-dev \ - libldap2-dev \ - libmemcached-dev \ - libpng-dev \ - libpq-dev \ - libpspell-dev \ - librecode-dev \ - libsasl2-dev \ - libsnmp-dev \ - libsodium-dev \ - libssl-dev \ - libtidy-dev \ - libvpx-dev \ - libwebp-dev \ - libxml2-dev \ - libxpm-dev \ - libxslt-dev \ - libzip-dev \ - snmp \ - zlib1g-dev \ - ca-certificates \ - git - -ENV RUN_DEPS \ - libaio1 \ - libaspell15 \ - libfbclient2 \ - libffi6 \ - libfreetype6 \ - libicu57 \ - libjpeg62-turbo \ - libmemcachedutil2 \ - libpng16-16 \ - libpq5 \ - librecode0 \ - libsybdb5 \ - libtidy5 \ - libvpx4 \ - libwebp6 \ - libxpm4 \ - libxslt1.1 \ - libzip4 \ - snmp \ - ca-certificates +FROM devilbox/php-fpm:8.0-base as builder ### ### Install ### -RUN set -x \ +RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -# ---- Installing PHP Extension: bcmath ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ - && (rm -rf /usr/local/lib/php/test/bcmath || true) \ - && (rm -rf /usr/local/lib/php/doc/bcmath || true) \ - \ -# ---- Installing PHP Extension: bz2 ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ - && (rm -rf /usr/local/lib/php/test/bz2 || true) \ - && (rm -rf /usr/local/lib/php/doc/bz2 || true) \ - \ -# ---- Installing PHP Extension: calendar ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ - && (rm -rf /usr/local/lib/php/test/calendar || true) \ - && (rm -rf /usr/local/lib/php/doc/calendar || true) \ - \ -# ---- Installing PHP Extension: dba ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ - && (rm -rf /usr/local/lib/php/test/dba || true) \ - && (rm -rf /usr/local/lib/php/doc/dba || true) \ - \ -# ---- Installing PHP Extension: exif ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ - && (rm -rf /usr/local/lib/php/test/exif || true) \ - && (rm -rf /usr/local/lib/php/doc/exif || true) \ - \ -# ---- Installing PHP Extension: gd ---- + alien \ + firebird-dev \ + freetds-dev \ + libaio-dev \ + libbz2-dev \ + libevent-dev \ + libfbclient2 \ + libfreetype6-dev \ + libgmp-dev \ + libib-util \ + libicu-dev \ + libjpeg-dev \ + libldap2-dev \ + libmemcached-dev \ + libpng-dev \ + libpq-dev \ + libpspell-dev \ + libsasl2-dev \ + libsnmp-dev \ + libsodium-dev \ + libssl-dev \ + libtidy-dev \ + libvpx-dev \ + libwebp-dev \ + libxml2-dev \ + libxpm-dev \ + libxslt-dev \ + libzip-dev \ + snmp \ + zlib1g-dev \ + ca-certificates \ + git + + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +# -------------------- Installing PHP Extension: bcmath -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bcmath \ + && true + + +# -------------------- Installing PHP Extension: bz2 -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) bz2 \ + && true + + +# -------------------- Installing PHP Extension: calendar -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) calendar \ + && true + + +# -------------------- Installing PHP Extension: dba -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) dba \ + && true + + +# -------------------- Installing PHP Extension: exif -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) exif \ + && true + + +# -------------------- Installing PHP Extension: gd -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ - && (rm -rf /usr/local/lib/php/test/gd || true) \ - && (rm -rf /usr/local/lib/php/doc/gd || true) \ - \ -# ---- Installing PHP Extension: gettext ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ - && (rm -rf /usr/local/lib/php/test/gettext || true) \ - && (rm -rf /usr/local/lib/php/doc/gettext || true) \ - \ -# ---- Installing PHP Extension: gmp ---- + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure gd --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \ + && true + + +# -------------------- Installing PHP Extension: gettext -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gettext \ + && true + + +# -------------------- Installing PHP Extension: gmp -------------------- +RUN set -eux \ + # Generic pre-command && ln /usr/include/x86_64-linux-gnu/gmp.h /usr/include/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ - && (rm -rf /usr/local/lib/php/test/gmp || true) \ - && (rm -rf /usr/local/lib/php/doc/gmp || true) \ - \ -# ---- Installing PHP Extension: intl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ - && (rm -rf /usr/local/lib/php/test/intl || true) \ - && (rm -rf /usr/local/lib/php/doc/intl || true) \ - \ -# ---- Installing PHP Extension: ldap ---- + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gmp \ + && true + + +# -------------------- Installing PHP Extension: intl -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) intl \ + && true + + +# -------------------- Installing PHP Extension: ldap -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libldap* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ - && (rm -rf /usr/local/lib/php/test/ldap || true) \ - && (rm -rf /usr/local/lib/php/doc/ldap || true) \ - \ -# ---- Installing PHP Extension: memcached ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure ldap --with-ldap --with-ldap-sasl \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) ldap \ + && true + + +# -------------------- Installing PHP Extension: memcached -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/php-memcached-dev/php-memcached /tmp/memcached \ && cd /tmp/memcached \ + # Custom: Branch && git checkout master \ + # Custom: Install command && true \ # FIXME: This is a work-around to mitigate compile error with PHP 8.0 && sed -i'' 's/\sTSRMLS_CC//g' php_memcached_session.c \ @@ -152,14 +166,20 @@ RUN set -x \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ \ + # Enabling && docker-php-ext-enable memcached \ - && (rm -rf /usr/local/lib/php/test/memcached || true) \ - && (rm -rf /usr/local/lib/php/doc/memcached || true) \ - \ -# ---- Installing PHP Extension: mongodb ---- + && true + + +# -------------------- Installing PHP Extension: mongodb -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/mongodb/mongo-php-driver /tmp/mongodb \ && cd /tmp/mongodb \ - && git submodule update --init \ + # Custom: Install command + && git checkout v1.6 \ +&& git submodule update --init \ # FIXME: This is a work-around to mitigate compile error with PHP 8.0 && rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C)/)/g' \ && rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C,/,/g' \ @@ -171,21 +191,39 @@ RUN set -x \ && sed -i'' 's/TSRMLS_FETCH();/\/\/TSRMLS_FETCH();/g' php_phongo.c \ && sed -i'' 's/TSRMLS_FETCH();/\/\/TSRMLS_FETCH();/g' phongo_compat.h \ && sed -i'' 's/TSRMLS_FETCH();/\/\/TSRMLS_FETCH();/g' src/bson.c \ +\ +&& sed -i'' 's/php_phongo_handler_binary.compare_objects.*//g' src/BSON/Binary.c \ +&& sed -i'' 's/php_phongo_handler_dbpointer.compare_objects.*//g' src/BSON/DBPointer.c \ +&& sed -i'' 's/php_phongo_handler_int64.compare_objects.*//g' src/BSON/Int64.c \ +&& sed -i'' 's/php_phongo_handler_javascript.compare_objects.*//g' src/BSON/Javascript.c \ +&& sed -i'' 's/php_phongo_handler_objectid.compare_objects.*//g' src/BSON/ObjectId.c \ +&& sed -i'' 's/php_phongo_handler_symbol.compare_objects.*//g' src/BSON/Symbol.c \ +&& sed -i'' 's/php_phongo_handler_timestamp.compare_objects.*//g' src/BSON/Timestamp.c \ +&& sed -i'' 's/php_phongo_handler_regex.compare_objects.*//g' src/BSON/Regex.c \ +&& sed -i'' 's/php_phongo_handler_server.compare_objects.*//g' src/MongoDB/Server.c \ +&& sed -i'' 's/php_phongo_handler_utcdatetime.compare_objects.*//g' src/BSON/UTCDateTime.c \ +\ && phpize \ && ./configure --enable-mongodb \ && make all \ && make install \ \ + # Enabling && docker-php-ext-enable mongodb \ - && (rm -rf /usr/local/lib/php/test/mongodb || true) \ - && (rm -rf /usr/local/lib/php/doc/mongodb || true) \ - \ -# ---- Installing PHP Extension: mysqli ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ - && (rm -rf /usr/local/lib/php/test/mysqli || true) \ - && (rm -rf /usr/local/lib/php/doc/mysqli || true) \ - \ -# ---- Installing PHP Extension: oci8 ---- + && true + + +# -------------------- Installing PHP Extension: mysqli -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) mysqli \ + && true + + +# -------------------- Installing PHP Extension: oci8 -------------------- +RUN set -eux \ + # Generic pre-command && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ @@ -199,41 +237,68 @@ RUN set -x \ && alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ -&& (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ - && /usr/local/bin/docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ - && (rm -rf /usr/local/lib/php/test/oci8 || true) \ - && (rm -rf /usr/local/lib/php/doc/oci8 || true) \ - \ -# ---- Installing PHP Extension: opcache ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ - && (rm -rf /usr/local/lib/php/test/opcache || true) \ - && (rm -rf /usr/local/lib/php/doc/opcache || true) \ - \ -# ---- Installing PHP Extension: pcntl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ - && (rm -rf /usr/local/lib/php/test/pcntl || true) \ - && (rm -rf /usr/local/lib/php/doc/pcntl || true) \ - \ -# ---- Installing PHP Extension: pdo_dblib ---- + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure oci8 --with-oci8=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) oci8 \ + # Generic post-command + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true + + +# -------------------- Installing PHP Extension: opcache -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) opcache \ + && true + + +# -------------------- Installing PHP Extension: pcntl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pcntl \ + && true + + +# -------------------- Installing PHP Extension: pdo_dblib -------------------- +RUN set -eux \ + # Generic pre-command && ln -s /usr/lib/x86_64-linux-gnu/libsybdb.* /usr/lib/ \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ - && (rm -rf /usr/local/lib/php/test/pdo_dblib || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_dblib || true) \ - \ -# ---- Installing PHP Extension: pdo_firebird ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ - && (rm -rf /usr/local/lib/php/test/pdo_firebird || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_firebird || true) \ - \ -# ---- Installing PHP Extension: pdo_mysql ---- - && /usr/local/bin/docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ - && (rm -rf /usr/local/lib/php/test/pdo_mysql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_mysql || true) \ - \ -# ---- Installing PHP Extension: pdo_oci ---- + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_dblib \ + && true + + +# -------------------- Installing PHP Extension: pdo_firebird -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_firebird \ + && true + + +# -------------------- Installing PHP Extension: pdo_mysql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_mysql --with-zlib-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_mysql \ + && true + + +# -------------------- Installing PHP Extension: pdo_oci -------------------- +RUN set -eux \ + # Generic pre-command && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ @@ -249,34 +314,46 @@ RUN set -x \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ \ - && /usr/local/bin/docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ - && (rm -rf /usr/local/lib/php/test/pdo_oci || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_oci || true) \ - \ -# ---- Installing PHP Extension: pdo_pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ - && (rm -rf /usr/local/lib/php/test/pdo_pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pdo_pgsql || true) \ - \ -# ---- Installing PHP Extension: pgsql ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ - && (rm -rf /usr/local/lib/php/test/pgsql || true) \ - && (rm -rf /usr/local/lib/php/doc/pgsql || true) \ - \ -# ---- Installing PHP Extension: pspell ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ - && (rm -rf /usr/local/lib/php/test/pspell || true) \ - && (rm -rf /usr/local/lib/php/doc/pspell || true) \ - \ -# ---- Installing PHP Extension: recode ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) recode \ - && (rm -rf /usr/local/lib/php/test/recode || true) \ - && (rm -rf /usr/local/lib/php/doc/recode || true) \ - \ -# ---- Installing PHP Extension: redis ---- + # Installation: Version specific + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/,${ORACLE_VERSION_MAJOR} \ + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_oci \ + && true + + +# -------------------- Installing PHP Extension: pdo_pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pdo_pgsql \ + && true + + +# -------------------- Installing PHP Extension: pgsql -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pgsql \ + && true + + +# -------------------- Installing PHP Extension: pspell -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) pspell \ + && true + + +# -------------------- Installing PHP Extension: redis -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/phpredis/phpredis /tmp/redis \ && cd /tmp/redis \ + # Custom: Install command && phpize \ && sed -i'' 's/ZEND_ACC_CTOR | //g' redis.c \ && sed -i'' 's/ZEND_ACC_DTOR | //g' redis.c \ @@ -292,60 +369,95 @@ RUN set -x \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ \ + # Enabling && docker-php-ext-enable redis \ - && (rm -rf /usr/local/lib/php/test/redis || true) \ - && (rm -rf /usr/local/lib/php/doc/redis || true) \ - \ -# ---- Installing PHP Extension: shmop ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ - && (rm -rf /usr/local/lib/php/test/shmop || true) \ - && (rm -rf /usr/local/lib/php/doc/shmop || true) \ - \ -# ---- Installing PHP Extension: snmp ---- - && /usr/local/bin/docker-php-ext-configure snmp --with-openssl-dir \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ - && (rm -rf /usr/local/lib/php/test/snmp || true) \ - && (rm -rf /usr/local/lib/php/doc/snmp || true) \ - \ -# ---- Installing PHP Extension: soap ---- - && /usr/local/bin/docker-php-ext-configure soap --with-libxml-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ - && (rm -rf /usr/local/lib/php/test/soap || true) \ - && (rm -rf /usr/local/lib/php/doc/soap || true) \ - \ -# ---- Installing PHP Extension: sockets ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ - && (rm -rf /usr/local/lib/php/test/sockets || true) \ - && (rm -rf /usr/local/lib/php/doc/sockets || true) \ - \ -# ---- Installing PHP Extension: sodium ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sodium \ - && (rm -rf /usr/local/lib/php/test/sodium || true) \ - && (rm -rf /usr/local/lib/php/doc/sodium || true) \ - \ -# ---- Installing PHP Extension: sysvmsg ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ - && (rm -rf /usr/local/lib/php/test/sysvmsg || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvmsg || true) \ - \ -# ---- Installing PHP Extension: sysvsem ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ - && (rm -rf /usr/local/lib/php/test/sysvsem || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvsem || true) \ - \ -# ---- Installing PHP Extension: sysvshm ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ - && (rm -rf /usr/local/lib/php/test/sysvshm || true) \ - && (rm -rf /usr/local/lib/php/doc/sysvshm || true) \ - \ -# ---- Installing PHP Extension: tidy ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ - && (rm -rf /usr/local/lib/php/test/tidy || true) \ - && (rm -rf /usr/local/lib/php/doc/tidy || true) \ - \ -# ---- Installing PHP Extension: uploadprogress ---- + && true + + +# -------------------- Installing PHP Extension: shmop -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) shmop \ + && true + + +# -------------------- Installing PHP Extension: snmp -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure snmp --with-openssl-dir \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) snmp \ + && true + + +# -------------------- Installing PHP Extension: soap -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure soap --with-libxml-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) soap \ + && true + + +# -------------------- Installing PHP Extension: sockets -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sockets \ + && true + + +# -------------------- Installing PHP Extension: sodium -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sodium \ + && true + + +# -------------------- Installing PHP Extension: sysvmsg -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvmsg \ + && true + + +# -------------------- Installing PHP Extension: sysvsem -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvsem \ + && true + + +# -------------------- Installing PHP Extension: sysvshm -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) sysvshm \ + && true + + +# -------------------- Installing PHP Extension: tidy -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: Built-in extension + # Installation + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) tidy \ + && true + + +# -------------------- Installing PHP Extension: uploadprogress -------------------- +RUN set -eux \ + # Installation: Version specific + # Type: GIT extension && git clone https://github.com/php/pecl-php-uploadprogress /tmp/uploadprogress \ && cd /tmp/uploadprogress \ + # Custom: Install command && true \ # FIXME: This is a work-around to mitigate compile error with PHP 8.0 && rgrep -I 'TSRMLS_CC' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_CC)/)/g' || true \ @@ -357,50 +469,136 @@ RUN set -x \ && make \ && make install \ \ + # Enabling && docker-php-ext-enable uploadprogress \ - && (rm -rf /usr/local/lib/php/test/uploadprogress || true) \ - && (rm -rf /usr/local/lib/php/doc/uploadprogress || true) \ - \ -# ---- Installing PHP Extension: xmlrpc ---- - && /usr/local/bin/docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ - && (rm -rf /usr/local/lib/php/test/xmlrpc || true) \ - && (rm -rf /usr/local/lib/php/doc/xmlrpc || true) \ - \ -# ---- Installing PHP Extension: xsl ---- - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ - && (rm -rf /usr/local/lib/php/test/xsl || true) \ - && (rm -rf /usr/local/lib/php/doc/xsl || true) \ - \ -# ---- Installing PHP Extension: zip ---- - && /usr/local/bin/docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ - && /usr/local/bin/docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ - && (rm -rf /usr/local/lib/php/test/zip || true) \ - && (rm -rf /usr/local/lib/php/doc/zip || true) \ - \ - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ - && rm -rf /var/lib/apt/lists/* \ - \ - && update-ca-certificates \ - \ + && true + + +# -------------------- Installing PHP Extension: xmlrpc -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure xmlrpc --with-libxml-dir=/usr --with-iconv-dir=/usr \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xmlrpc \ + && true + + +# -------------------- Installing PHP Extension: xsl -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) xsl \ + && true + + +# -------------------- Installing PHP Extension: zip -------------------- +RUN set -eux \ + # Installation: Generic + # Type: Built-in extension + # Custom: configure command + && docker-php-ext-configure zip --with-zlib-dir=/usr --with-pcre-dir=/usr --with-libzip \ + && docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) zip \ + && true + + + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. +FROM devilbox/php-fpm:8.0-base as final +MAINTAINER "cytopia" + +### +### Labels +### +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="8.0-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-mods" + + +### +### Copy artifacts from builder +### +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ + + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ + libaio1 \ + libaspell15 \ + libfbclient2 \ + libffi6 \ + libfreetype6 \ + libicu57 \ + libjpeg62-turbo \ + libmemcachedutil2 \ + libpng16-16 \ + libpq5 \ + libsybdb5 \ + libtidy5 \ + libvpx4 \ + libwebp6 \ + libxpm4 \ + libxslt1.1 \ + libzip4 \ + snmp \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* \ + \ + && update-ca-certificates + + +### +### Post Install +### +RUN set -eux \ + # ---------- oci8 ---------- + && ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ +&& ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ +&& ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ +&& (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ + \ + && true ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^8.0' \ && /usr/local/sbin/php-fpm --test \ @@ -501,8 +699,6 @@ RUN set -x \ && php -m | grep -oiE '^pspell$' \ && php-fpm -m | grep -oiE '^pspell$' \ && php -m | grep -oiE '^readline$' \ - && php -m | grep -oiE '^recode$' \ - && php-fpm -m | grep -oiE '^recode$' \ && php -m | grep -oiE '^redis$' \ && php-fpm -m | grep -oiE '^redis$' \ && php -m | grep -oiE '^reflection$' \ diff --git a/Dockerfiles/prod/Dockerfile-5.2 b/Dockerfiles/prod/Dockerfile-5.2 index 75b8953..100c187 100644 --- a/Dockerfiles/prod/Dockerfile-5.2 +++ b/Dockerfiles/prod/Dockerfile-5.2 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.2 Image" \ - image="devilbox/php-fpm" \ - tag="5.2-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.2-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/prod/Dockerfile-5.3 b/Dockerfiles/prod/Dockerfile-5.3 index a3fc49b..5183098 100644 --- a/Dockerfiles/prod/Dockerfile-5.3 +++ b/Dockerfiles/prod/Dockerfile-5.3 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.3 Image" \ - image="devilbox/php-fpm" \ - tag="5.3-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.3-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/prod/Dockerfile-5.4 b/Dockerfiles/prod/Dockerfile-5.4 index 6365cdc..d68544c 100644 --- a/Dockerfiles/prod/Dockerfile-5.4 +++ b/Dockerfiles/prod/Dockerfile-5.4 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.4 Image" \ - image="devilbox/php-fpm" \ - tag="5.4-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.4-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/prod/Dockerfile-5.5 b/Dockerfiles/prod/Dockerfile-5.5 index b97f687..2dd27b9 100644 --- a/Dockerfiles/prod/Dockerfile-5.5 +++ b/Dockerfiles/prod/Dockerfile-5.5 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.5 Image" \ - image="devilbox/php-fpm" \ - tag="5.5-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.5-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/prod/Dockerfile-5.6 b/Dockerfiles/prod/Dockerfile-5.6 index d4aa7c7..b2fb8b8 100644 --- a/Dockerfiles/prod/Dockerfile-5.6 +++ b/Dockerfiles/prod/Dockerfile-5.6 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.6 Image" \ - image="devilbox/php-fpm" \ - tag="5.6-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.6-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/prod/Dockerfile-7.0 b/Dockerfiles/prod/Dockerfile-7.0 index f2e1c97..3e70801 100644 --- a/Dockerfiles/prod/Dockerfile-7.0 +++ b/Dockerfiles/prod/Dockerfile-7.0 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.0 Image" \ - image="devilbox/php-fpm" \ - tag="7.0-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.0-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/prod/Dockerfile-7.1 b/Dockerfiles/prod/Dockerfile-7.1 index 723efc4..1374998 100644 --- a/Dockerfiles/prod/Dockerfile-7.1 +++ b/Dockerfiles/prod/Dockerfile-7.1 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.1 Image" \ - image="devilbox/php-fpm" \ - tag="7.1-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.1-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/prod/Dockerfile-7.2 b/Dockerfiles/prod/Dockerfile-7.2 index b51c04d..9f8f284 100644 --- a/Dockerfiles/prod/Dockerfile-7.2 +++ b/Dockerfiles/prod/Dockerfile-7.2 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.2 Image" \ - image="devilbox/php-fpm" \ - tag="7.2-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.2-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/prod/Dockerfile-7.3 b/Dockerfiles/prod/Dockerfile-7.3 index 6c7e4db..b5935c0 100644 --- a/Dockerfiles/prod/Dockerfile-7.3 +++ b/Dockerfiles/prod/Dockerfile-7.3 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.3 Image" \ - image="devilbox/php-fpm" \ - tag="7.3-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.3-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/prod/Dockerfile-7.4 b/Dockerfiles/prod/Dockerfile-7.4 index 0ec2dd3..f284731 100644 --- a/Dockerfiles/prod/Dockerfile-7.4 +++ b/Dockerfiles/prod/Dockerfile-7.4 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.4 Image" \ - image="devilbox/php-fpm" \ - tag="7.4-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.4-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/prod/Dockerfile-8.0 b/Dockerfiles/prod/Dockerfile-8.0 index 33ea901..50b3ba9 100644 --- a/Dockerfiles/prod/Dockerfile-8.0 +++ b/Dockerfiles/prod/Dockerfile-8.0 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 8.0 Image" \ - image="devilbox/php-fpm" \ - tag="8.0-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="8.0-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - ### ### Verify ### @@ -77,7 +84,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/Dockerfiles/work/Dockerfile-5.2 b/Dockerfiles/work/Dockerfile-5.2 index 84cea12..5bf8735 100644 --- a/Dockerfiles/work/Dockerfile-5.2 +++ b/Dockerfiles/work/Dockerfile-5.2 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.2 Image" \ - image="devilbox/php-fpm" \ - tag="5.2-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.2-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.2-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.2-work" ### @@ -451,7 +459,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Dockerfiles/work/Dockerfile-5.3 b/Dockerfiles/work/Dockerfile-5.3 index 64ddb94..7596120 100644 --- a/Dockerfiles/work/Dockerfile-5.3 +++ b/Dockerfiles/work/Dockerfile-5.3 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.3 Image" \ - image="devilbox/php-fpm" \ - tag="5.3-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.3-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.3-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.3-work" ### @@ -500,7 +508,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index 20b3026..4ecd146 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.4 Image" \ - image="devilbox/php-fpm" \ - tag="5.4-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.4-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.4-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.4-work" ### @@ -533,7 +541,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index edb81ab..41ec770 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.5 Image" \ - image="devilbox/php-fpm" \ - tag="5.5-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.5-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.5-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.5-work" ### @@ -549,7 +557,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index 50f1544..adce75a 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 5.6 Image" \ - image="devilbox/php-fpm" \ - tag="5.6-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="5.6-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 5.6-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 5.6-work" ### @@ -562,7 +570,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index d68979a..0405bb9 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.0 Image" \ - image="devilbox/php-fpm" \ - tag="7.0-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.0-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.0-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.0-work" ### @@ -562,7 +570,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index 44b23da..81acf3f 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.1 Image" \ - image="devilbox/php-fpm" \ - tag="7.1-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.1-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.1-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.1-work" ### @@ -562,7 +570,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index 2d220a7..485a6bb 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.2 Image" \ - image="devilbox/php-fpm" \ - tag="7.2-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.2-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.2-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.2-work" ### @@ -562,7 +570,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Dockerfiles/work/Dockerfile-7.3 b/Dockerfiles/work/Dockerfile-7.3 index fc3c55a..d40e85b 100644 --- a/Dockerfiles/work/Dockerfile-7.3 +++ b/Dockerfiles/work/Dockerfile-7.3 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.3 Image" \ - image="devilbox/php-fpm" \ - tag="7.3-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.3-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.3-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.3-work" ### @@ -550,7 +558,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Dockerfiles/work/Dockerfile-7.4 b/Dockerfiles/work/Dockerfile-7.4 index bf36899..cac66d6 100644 --- a/Dockerfiles/work/Dockerfile-7.4 +++ b/Dockerfiles/work/Dockerfile-7.4 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 7.4 Image" \ - image="devilbox/php-fpm" \ - tag="7.4-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="7.4-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 7.4-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 7.4-work" ### @@ -545,7 +553,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Dockerfiles/work/Dockerfile-8.0 b/Dockerfiles/work/Dockerfile-8.0 index db3507b..39b8458 100644 --- a/Dockerfiles/work/Dockerfile-8.0 +++ b/Dockerfiles/work/Dockerfile-8.0 @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM 8.0 Image" \ - image="devilbox/php-fpm" \ - tag="8.0-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="8.0-work" +LABEL "org.opencontainers.image.title"="PHP-FPM 8.0-work" +LABEL "org.opencontainers.image.description"="PHP-FPM 8.0-work" ### @@ -465,7 +473,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/Makefile b/Makefile index e1a3f55..524de56 100644 --- a/Makefile +++ b/Makefile @@ -7,38 +7,65 @@ endif # Docker configuration # ------------------------------------------------------------------------------------------------- -DIR = Dockerfiles/ +DIR = Dockerfiles IMAGE = devilbox/php-fpm NO_CACHE = +PHP_EXT_DIR = +# Run checks after each module has been installed (slow, but yields errors faster) +FAIL_FAST = False # ------------------------------------------------------------------------------------------------- # DEFAULT TARGET # ------------------------------------------------------------------------------------------------- help: - @echo "################################################################################" - @echo "# devilbox/php:XX-XX Makefile" - @echo "################################################################################" @echo - @echo "gen-readme [VERSION=] Update README.md with PHP modules from built images." - @echo "gen-dockerfiles Generate Dockerfiles from templates." + @echo " _ _ _ _ __ _ ___ " + @echo " _| |___ _ _<_| | |_ _____ / ___| |_ ___ ___| | ___._ _ _ " + @echo " / . / ._| | | | | . / . \ \// | . | . | . |___| || . | ' ' |" + @echo " \___\___|__/|_|_|___\___/\_/_/| _|_|_| _/ |_|| _|_|_|_|" + @echo " |_| |_| |_| " @echo - @echo "build-base VERSION= Build base image by specified version". - @echo "build-mods VERSION= Build mods image by specified version". - @echo "build-prod VERSION= Build prod image by specified version". - @echo "build-work VERSION= Build work image by specified version". @echo - @echo "rebuild-base VERSION= Rebuild base image by specified version". - @echo "rebuild-mods VERSION= Rebuild mods image by specified version". - @echo "rebuild-prod VERSION= Rebuild prod image by specified version". - @echo "rebuild-work VERSION= Rebuild work image by specified version". + @echo "Targets" + @echo "--------------------------------------------------------------------------------" @echo - @echo "test-base VERSION= Test base image by specified version". - @echo "test-mods VERSION= Test mods image by specified version". - @echo "test-prod VERSION= Test prod image by specified version". - @echo "test-work VERSION= Test work image by specified version". - + @echo "gen-readme [VERSION=] Update README with PHP modules from built images." + @echo "gen-dockerfiles [FAIL_FAST=] Generate Dockerfiles from templates." + @echo + @echo "build-base VERSION= [ARGS=] Build base image by specified version" + @echo "build-mods VERSION= [ARGS=] Build mods image by specified version" + @echo "build-prod VERSION= [ARGS=] Build prod image by specified version" + @echo "build-work VERSION= [ARGS=] Build work image by specified version" + @echo + @echo "rebuild-base VERSION= [ARGS=] Rebuild base image by specified version" + @echo "rebuild-mods VERSION= [ARGS=] Rebuild mods image by specified version" + @echo "rebuild-prod VERSION= [ARGS=] Rebuild prod image by specified version" + @echo "rebuild-work VERSION= [ARGS=] Rebuild work image by specified version" + @echo + @echo "test-base VERSION= Test base image by specified version" + @echo "test-mods VERSION= Test mods image by specified version" + @echo "test-prod VERSION= Test prod image by specified version" + @echo "test-work VERSION= Test work image by specified version" + @echo + @echo + @echo "Variables" + @echo "--------------------------------------------------------------------------------" + @echo + @echo "VERSION One of '5.2', '5.3', '5.4', '5.5', '5.6', '7.0'," + @echo " '7.1', '7.2', '7.3', '7.4', '8.0'." + @echo " For gen-readme target it is optional and if not" + @echo " specified, it will generate for all versions." + @echo + @echo "FAIL_FAST Either 'True' or 'False' (defaults to 'False')." + @echo " If set to 'True', each module install has an" + @echo " immediate check, which is very slow for CI, but" + @echo " yields errors immediately." + @echo " If set to 'False', checks are done at the end." + @echo + @echo "ARGS Can be added to all build-* and rebuild-* targets" + @echo " to supply additional docker build options." # ------------------------------------------------------------------------------------------------- # GENERATE TARGETS @@ -63,7 +90,10 @@ gen-dockerfiles: -e MY_GID=$$(id -g) \ -v ${PWD}:/data \ -w /data/build/ansible \ - cytopia/ansible:2.8 ansible-playbook generate.yml --diff + cytopia/ansible:2.8 ansible-playbook generate.yml \ + -e ansible_python_interpreter=/usr/bin/python3 \ + -e '{build_fail_fast: $(FAIL_FAST)}' \ + --diff $(ARGS) # ------------------------------------------------------------------------------------------------- @@ -72,36 +102,80 @@ gen-dockerfiles: build-base: _check-version build-base: - docker build $(NO_CACHE) -t $(IMAGE):${VERSION}-base -f $(DIR)/base/Dockerfile-${VERSION} $(DIR)/base + docker build $(NO_CACHE) \ + --label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \ + --label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \ + --label "org.opencontainers.image.revision"="$$(git rev-parse HEAD))" \ + $(ARGS) \ + -t $(IMAGE):${VERSION}-base \ + -f $(DIR)/base/Dockerfile-${VERSION} $(DIR)/base build-mods: _check-version build-mods: _EXIST_IMAGE=base build-mods: _check-image-exists build-mods: - docker build $(NO_CACHE) -t $(IMAGE):${VERSION}-mods -f $(DIR)/mods/Dockerfile-${VERSION} $(DIR)/mods +ifeq ($(strip $(TARGET)),) + docker build $(NO_CACHE) \ + --target builder \ + -t $(IMAGE):$(VERSION)-mods \ + -f $(DIR)/mods/Dockerfile-$(VERSION) $(DIR)/mods; + @# $(NO_CACHE) is removed, as it would otherwise rebuild the 'builder' image again. + docker build \ + --target final \ + --label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \ + --label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \ + --label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \ + --build-arg EXT_DIR="$$( docker run --rm --entrypoint=php $(IMAGE):$(VERSION)-mods -i \ + | grep ^extension_dir \ + | awk -F '=>' '{print $$2}' \ + | xargs \ + )" \ + $(ARGS) \ + -t $(IMAGE):$(VERSION)-mods \ + -f $(DIR)/mods/Dockerfile-$(VERSION) $(DIR)/mods; +else + docker build $(NO_CACHE) \ + --target $(TARGET) \ + --label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \ + --label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \ + --label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \ + $(ARGS) \ + -t $(IMAGE):$(VERSION)-mods \ + -f $(DIR)/mods/Dockerfile-$(VERSION) $(DIR)/mods +endif build-prod: _check-version build-prod: _EXIST_IMAGE=mods build-prod: _check-image-exists build-prod: - docker build $(NO_CACHE) -t $(IMAGE):${VERSION}-prod -f $(DIR)/prod/Dockerfile-${VERSION} $(DIR)/prod + docker build $(NO_CACHE) \ + --label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \ + --label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \ + --label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \ + $(ARGS) \ + -t $(IMAGE):${VERSION}-prod \ + -f $(DIR)/prod/Dockerfile-${VERSION} $(DIR)/prod build-work: _check-version build-work: _EXIST_IMAGE=prod build-work: _check-image-exists build-work: - docker build $(NO_CACHE) -t $(IMAGE):${VERSION}-work -f $(DIR)/work/Dockerfile-${VERSION} $(DIR)/work + docker build $(NO_CACHE) \ + --label "org.opencontainers.image.created"="$$(date --rfc-3339=s)" \ + --label "org.opencontainers.image.version"="$$(git rev-parse --abbrev-ref HEAD)" \ + --label "org.opencontainers.image.revision"="$$(git rev-parse HEAD)" \ + $(ARGS) \ + -t $(IMAGE):${VERSION}-work \ + -f $(DIR)/work/Dockerfile-${VERSION} $(DIR)/work # ------------------------------------------------------------------------------------------------- # REBUILD TARGETS # ------------------------------------------------------------------------------------------------- -rebuild-base: _check-version -rebuild-base: _pull-root-image rebuild-base: NO_CACHE=--no-cache rebuild-base: build-base @@ -201,7 +275,7 @@ endif _check-image-exists: @if [ "$$(docker images -q $(IMAGE):$(VERSION)-$(_EXIST_IMAGE))" = "" ]; then \ - >&2 echo "Docker image '$(IMAGE):$(VERSION)-$(_EXIST_IMAGE)' is was not found locally."; \ + >&2 echo "Docker image '$(IMAGE):$(VERSION)-$(_EXIST_IMAGE)' was not found locally."; \ >&2 echo "Either build it first or explicitly pull it from Dockerhub."; \ >&2 echo "This is a safeguard to not automatically pull the Docker image."; \ >&2 echo; \ diff --git a/build/ansible/DOCKERFILES/Dockerfile-base.j2 b/build/ansible/DOCKERFILES/Dockerfile-base.j2 index ebe9fef..57db7bd 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-base.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-base.j2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead. +{{ edit_comment_base }} {% if php_version == 5.2 %} FROM devilbox/php-fpm-5.2 {% elif php_version == 5.3 %} @@ -16,12 +16,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM {{ php_version }} Image" \ - image="devilbox/php-fpm" \ - tag="{{ php_version }}-base" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-base" +LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-base" +LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-base" ### diff --git a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 index 72c775c..39d7459 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-mods.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-mods.j2 @@ -1,24 +1,12 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead. -FROM devilbox/php-fpm:{{ php_version }}-base -MAINTAINER "cytopia" +{{ edit_comment_mods }} +FROM devilbox/php-fpm:{{ php_version }}-base as builder -### -### Labels -### -LABEL \ - name="cytopia's PHP-FPM {{ php_version }} Image" \ - image="devilbox/php-fpm" \ - tag="{{ php_version }}-mods" \ - vendor="devilbox" \ - license="MIT" - - -### -### Envs -### -ENV BUILD_DEPS \ -{# Loop over enabled build dependencies -#} +{# +################################################################################################### + Loop over enabled build dependencies and gather build dependencies +################################################################################################### +#} {%- set build_deps = [] -%} {%- for ext in extensions_enabled -%} {#- Not disabled AND not already available by default -#} @@ -39,13 +27,312 @@ ENV BUILD_DEPS \ {%- endif -%} {%- endif -%} {%- endfor -%} +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ {% for build_dep in build_deps | unique | sort %} - {{ build_dep }} \ + {{ build_dep }} \ {% endfor %} - ca-certificates \ - git + ca-certificates \ + git -ENV RUN_DEPS \ + +# Fix timezone (only required for testing to stop php -v and php-fpm -v from complaining to stderr) +RUN set -eux \ + && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini + + +### +### Install and enable PHP modules +### +# Enable ffi if it exists +RUN set -eux \ + && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ + echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ + fi + +{# Loop over enabled extensions #} +{% for ext in extensions_enabled %} + {#- + ############################################################################################### + # Not disabled AND not already enabled + ############################################################################################### + -#} + {%- if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %} +# -------------------- Installing PHP Extension: {{ ext }} -------------------- +RUN set -eux \ + {#- + # -------------------------------------------------------------------------------- + # PRE COMMAND + # -------------------------------------------------------------------------------- + -#} + {#- Version specific pre-command available? -#} + {%- if php_version in extensions_available[ext] and 'pre' in extensions_available[ext][php_version] -%} + {{- "\n\t" }}# Version specific pre-command + {{- "\n\t" }}&& {{ extensions_available[ext][php_version]['pre'] }} \ + {#- Generic pre-command available? -#} + {%- elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %} + {{- "\n\t" }}# Generic pre-command + {{- "\n\t" }}&& {{ extensions_available[ext]['all']['pre'] }} \ + {%- endif -%} + {#- + # -------------------------------------------------------------------------------- + # INSTALLATION (VERSION SPECIFIC) + # -------------------------------------------------------------------------------- + #} + {%- if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] -%} + {{- "\n\t" }}# Installation: Version specific + {#- + # -------------------- 1.) Builtin -------------------- + -#} + {%- if extensions_available[ext][php_version]['type'] == 'builtin' -%} + {{- "\n\t" }}# Type: Built-in extension + {%- if 'configure' in extensions_available[ext][php_version] -%} + {{- "\n\t" }}# Custom: configure command + {{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \ + {%- endif -%} + {{- "\n\t" }}# Installation + {{- "\n\t" }}&& docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ + {#- + # -------------------- 2.) PECL -------------------- + -#} + {%- elif extensions_available[ext][php_version]['type'] == 'pecl' -%} + {{- "\n\t" }}# Type: PECL extension + {%- if 'command' in extensions_available[ext][php_version] -%} + {{- "\n\t" }}# Custom: Pecl command + {{- "\n\t" }}&& {{ extensions_available[ext][php_version]['command'] }} \ + {%- else -%} + {{- "\n\t" }}# Default: Pecl command + {{- "\n\t" }}&& pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \ + {%- endif -%} + {{- "\n\t" }}# Enabling + {{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \ + {#- + # -------------------- 3.) GIT -------------------- + -#} + {%- elif extensions_available[ext][php_version]['type'] == 'git' -%} + {{- "\n\t" }}# Type: GIT extension + {{- "\n\t" }}&& git clone {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \ + {{- "\n\t" }}&& cd /tmp/{{ ext }} \ + {%- if 'git_ref' in extensions_available[ext][php_version] -%} + {{- "\n\t" }}# Custom: Branch + {{- "\n\t" }}&& git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \ + {%- endif -%} + {%- if 'command' in extensions_available[ext][php_version] -%} + {{- "\n\t" }}# Custom: Install command + {{- "\n\t" }}&& {{ extensions_available[ext][php_version]['command'] }} \ + {%- else -%} + {{- "\n\t" }}# Default: Install command + {{- "\n\t" }}&& phpize \ + {{- "\n\t" }}&& ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \ + {{- "\n\t" }}&& make -j$(getconf _NPROCESSORS_ONLN) \ + {{- "\n\t" }}&& make install \ + {%- endif -%} + {{- "\n\t" }}# Enabling + {{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \ + {#- + # -------------------- 4.) CUSTOM -------------------- + -#} + {%- elif extensions_available[ext][php_version]['type'] == 'custom' -%} + {{- "\n\t" }}# Type: Custom extension + {{- "\n\t" }}&& {{ extensions_available[ext][php_version]['command'] }} \ + {%- endif -%} + {#- + # -------------------------------------------------------------------------------- + # INSTALLATION (GENERIC) + # -------------------------------------------------------------------------------- + #} + {%- elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] -%} + {{- "\n\t" }}# Installation: Generic + {#- + # -------------------- 1.) Builtin -------------------- + -#} + {%- if extensions_available[ext]['all']['type'] == 'builtin' -%} + {{- "\n\t" }}# Type: Built-in extension + {%- if 'configure' in extensions_available[ext]['all'] -%} + {{- "\n\t" }}# Custom: configure command + {{- "\n\t" }}&& docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \ + {%- endif -%} + {{- "\n\t" }}&& docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ + {#- + # -------------------- 2.) PECL -------------------- + -#} + {%- elif extensions_available[ext]['all']['type'] == 'pecl' -%} + {{- "\n\t" }}# Type: PECL extension + {%- if 'command' in extensions_available[ext]['all'] -%} + {{- "\n\t" }}# Custom: Pecl command + {{- "\n\t" }}&& {{ extensions_available[ext]['all']['command'] }} \ + {%- else -%} + {{- "\n\t" }}# Default: Pecl command + {{- "\n\t" }}&& pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \ + {%- endif -%} + {{- "\n\t" }}# Enabling + {{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \ + {#- + # -------------------- 2.) GIT -------------------- + -#} + {%- elif extensions_available[ext]['all']['type'] == 'git' -%} + {{- "\n\t" }}# Type: GIT extension + {{- "\n\t" }}&& git clone {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \ + {{- "\n\t" }}&& cd /tmp/{{ ext }} \ + {%- if 'git_ref' in extensions_available[ext]['all'] -%} + {{- "\n\t" }}# Custom: Branch + {{- "\n\t" }}&& git checkout {{ extensions_available[ext]['all']['git_ref'] }} \ + {%- endif -%} + {%- if 'command' in extensions_available[ext]['all'] -%} + {{- "\n\t" }}# Custom: Install command + {{- "\n\t" }}&& {{ extensions_available[ext]['all']['command'] }} \ + {%- else -%} + {{- "\n\t" }}# Default: Install command + {{- "\n\t" }}&& phpize \ + {{- "\n\t" }}&& ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \ + {{- "\n\t" }}&& make -j$(getconf _NPROCESSORS_ONLN) \ + {{- "\n\t" }}&& make install \ + {%- endif -%} + {{- "\n\t" }}# Enabling + {{- "\n\t" }}&& docker-php-ext-enable {{ ext }} \ + {#- + # -------------------- 4.) CUSTOM -------------------- + -#} + {%- elif extensions_available[ext]['all']['type'] == 'custom' -%} + {{- "\n\t" }}# Type: Custom extension + {{- "\n\t" }}&& {{ extensions_available[ext]['all']['command'] }} \ + {%- endif -%} + {%- endif -%} + {#- + # -------------------------------------------------------------------------------- + # POST COMMAND + # -------------------------------------------------------------------------------- + -#} + {#- Version specific post-command available? -#} + {%- if php_version in extensions_available[ext] and 'post' in extensions_available[ext][php_version] -%} + {{- "\n\t" }}# Version specific post-command + {{- "\n\t" }}&& {{ extensions_available[ext][php_version]['post'] }} \ + {#- Generic post-command available? -#} + {%- elif 'all' in extensions_available[ext] and 'post' in extensions_available[ext]['all'] %} + {{- "\n\t" }}# Generic post-command + {{- "\n\t" }}&& {{ extensions_available[ext]['all']['post'] }} \ + {%- endif -%} + {#- End of: Not disabled AND not already enabled -#} + {%- endif -%} + {#- + ############################################################################################### + # Ensure modules that are not disabled have an appropriate ini directive and are loaded + ############################################################################################### + -#} + {%- if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) -%} + {%- if php_version in extensions_available[ext] and 'load_ext' in extensions_available[ext][php_version] -%} + {{- "\n\t" }}# Activate: Version specific extension + {{- "\n\t" }}&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then \ + {{- "\n\t" }} echo "extension={{ extensions_available[ext][php_version]['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; \ + {{- "\n\t" }}fi \ + {%- elif 'all' in extensions_available[ext] and 'load_ext' in extensions_available[ext]['all'] -%} + {{- "\n\t" }}# Activate: Generic extension + {{- "\n\t" }}&& if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then \ + {{- "\n\t" }} echo "extenstion={{ extensions_available[ext]['all']['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; \ + {{- "\n\t" }}fi \ + {%- endif -%} + {%- endif %} + {#- + ############################################################################################### + # Test extensions + ############################################################################################### + -#} + {#- Not disabled #} + {%- if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %} + {%- if build_fail_fast -%} + {{- "\n\t" }}# ---- Test extension ---- + {{- "\n\t" }}&& /usr/local/sbin/php-fpm --test \ + {{- "\n\t" }}\ + {{- "\n\t" }}&& (php -v 2>&1 1>/dev/null || true) \ + {{- "\n\t" }}&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \ + {{- "\n\t" }}&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \ + {{- "\n\t" }}&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \ + {{- "\n\t" }}&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \ + {{- "\n\t" }}\ + {{- "\n\t" }}&& (php-fpm -v 2>&1 1>/dev/null || true) \ + {{- "\n\t" }}&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \ + {{- "\n\t" }}&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \ + {{- "\n\t" }}&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \ + {{- "\n\t" }}&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \ + {{- "\n\t" }}\ + {%- if ext == 'opcache' -%} + {{- "\n\t" }}&& php -m | grep -oiE '^Zend Opcache$' \ + {{- "\n\t" }}&& php-fpm -m | grep -oiE '^Zend Opcache$' + {%- elif ext == 'readline' -%} + {{- "\n\t" }}&& php -m | grep -oiE '^readline$' + {%- elif ext not in ['blackfire', 'ioncube'] -%} + {{- "\n\t" }}&& php -m | grep -oiE '^{{ ext }}$' \ + {{- "\n\t" }}&& php-fpm -m | grep -oiE '^{{ ext }}$' + {%- else %} + {{- "\n\t" }}&& true + {%- endif %} + {{- "\n\n\n" }} + {%- else -%} + {{- "\n\t" }}&& true{{ "\n\n\n" }} + {%- endif %} + {%- endif %} +{%- endfor %} + + +# Fix php.ini settings for enabled extensions +RUN set -eux \ + && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* + +# Fix oracle dir for images that don't have oci installed +RUN set -eux \ + && mkdir -p /usr/lib/oracle/ + +# Shrink everything down +RUN set -eux \ + && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ + && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + + + +{{ edit_comment_mods }} +FROM devilbox/php-fpm:{{ php_version }}-base as final +MAINTAINER "cytopia" + +### +### Labels +### +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-mods" +LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-mods" +LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-mods" + + +### +### Copy artifacts from builder +### +ARG EXT_DIR +COPY --from=builder ${EXT_DIR}/ ${EXT_DIR}/ +COPY --from=builder /usr/local/etc/php/conf.d/ /usr/local/etc/php/conf.d/ +COPY --from=builder /usr/lib/oracle/ /usr/lib/oracle/ + + +### +### Install +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ + && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ {# Loop over enabled run-time dependencies -#} {%- set run_deps = [] -%} {%- for ext in extensions_enabled -%} @@ -69,145 +356,44 @@ ENV RUN_DEPS \ {% for run_dep in run_deps | unique | sort %} {{ run_dep }} \ {% endfor %} - ca-certificates - - -### -### Install -### -RUN set -x \ - && DEBIAN_FRONTEND=noninteractive apt-get update -qq \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests apt-utils \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests \ - ${BUILD_DEPS} \ - \ - \ -{# Loop over enabled extensions #} -{% for ext in extensions_enabled %} -{# Not disabled AND not already enabled #} -{% if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %} -# ---- Installing PHP Extension: {{ ext }} ---- -{# ---------- Pre Command ---------- #} -{# Version specific pre-command available? #} -{% if php_version in extensions_available[ext] and 'pre' in extensions_available[ext][php_version] %} - && {{ extensions_available[ext][php_version]['pre'] }} \ -{# Generic pre-command available? #} -{% elif 'all' in extensions_available[ext] and 'pre' in extensions_available[ext]['all'] %} - && {{ extensions_available[ext]['all']['pre'] }} \ -{% endif %} -{# ---------- Installation (specific) ---------- #} -{% if php_version in extensions_available[ext] and 'type' in extensions_available[ext][php_version] %} -{# ---- 1.) Builtin ---- #} -{% if extensions_available[ext][php_version]['type'] == 'builtin' %} -{% if 'configure' in extensions_available[ext][php_version] %} - && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext][php_version]['configure'] }} \ -{% endif %} - && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ -{# ---- 2.) PECL ---- #} -{% elif extensions_available[ext][php_version]['type'] == 'pecl' %} -{% if 'command' in extensions_available[ext][php_version] %} - && {{ extensions_available[ext][php_version]['command'] }} \ -{% else %} - && pecl install {{ ext }}{% if 'version' in extensions_available[ext][php_version] %}-{{ extensions_available[ext][php_version]['version'] }}{% endif %} \ -{% endif %} - && docker-php-ext-enable {{ ext }} \ -{# ---- 3.) GIT ---- #} -{% elif extensions_available[ext][php_version]['type'] == 'git' %} - && git clone {{ extensions_available[ext][php_version]['git_url'] }} /tmp/{{ ext }} \ - && cd /tmp/{{ ext }} \ -{% if 'git_ref' in extensions_available[ext][php_version] %} - && git checkout {{ extensions_available[ext][php_version]['git_ref'] }} \ -{% endif %} -{% if 'command' in extensions_available[ext][php_version] %} - && {{ extensions_available[ext][php_version]['command'] }} \ -{% else %} - && phpize \ - && ./configure {% if 'configure' in extensions_available[ext][php_version] %} {{ extensions_available[ext][php_version]['configure'] }}{% endif %} \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ -{% endif %} - && docker-php-ext-enable {{ ext }} \ -{# ---- 4.) CUSTOM ---- #} -{% elif extensions_available[ext][php_version]['type'] == 'custom' %} - && {{ extensions_available[ext][php_version]['command'] }} \ -{% endif %} -{# ---------- Installation (generic) ---------- #} -{% elif 'all' in extensions_available[ext] and 'type' in extensions_available[ext]['all'] %} -{# ---- 1.) Builtin ---- #} -{% if extensions_available[ext]['all']['type'] == 'builtin' %} -{% if 'configure' in extensions_available[ext]['all'] %} - && /usr/local/bin/docker-php-ext-configure {{ ext }} {{ extensions_available[ext]['all']['configure'] }} \ -{% endif %} - && /usr/local/bin/docker-php-ext-install{% if php_version != 5.4 %} -j$(getconf _NPROCESSORS_ONLN){% endif %} {{ ext }} \ -{# ---- 2.) PECL ---- #} -{% elif extensions_available[ext]['all']['type'] == 'pecl' %} -{% if 'command' in extensions_available[ext]['all'] %} - && {{ extensions_available[ext]['all']['command'] }} \ -{% else %} - && pecl install {{ ext }}{% if 'version' in extensions_available[ext]['all'] %}-{{ extensions_available[ext]['all']['version'] }}{% endif %} \ -{% endif %} - && docker-php-ext-enable {{ ext }} \ -{# ---- 3.) GIT ---- #} -{% elif extensions_available[ext]['all']['type'] == 'git' %} - && git clone {{ extensions_available[ext]['all']['git_url'] }} /tmp/{{ ext }} \ - && cd /tmp/{{ ext }} \ -{% if 'git_ref' in extensions_available[ext]['all'] %} - && git checkout {{ extensions_available[ext]['all']['git_ref'] }} \ -{% endif %} -{% if 'command' in extensions_available[ext]['all'] %} - && {{ extensions_available[ext]['all']['command'] }} \ -{% else %} - && phpize \ - && ./configure {% if 'configure' in extensions_available[ext]['all'] %} {{ extensions_available[ext]['all']['configure'] }}{% endif %} \ - && make -j$(getconf _NPROCESSORS_ONLN) \ - && make install \ -{% endif %} - && docker-php-ext-enable {{ ext }} \ -{# ---- 4.) CUSTOM ---- #} -{% elif extensions_available[ext]['all']['type'] == 'custom' %} - && {{ extensions_available[ext]['all']['command'] }} \ -{% endif %} -{% endif %} -{# Only delete files for extensions we've actually installed, not those that were already available by default #} - && (rm -rf /usr/local/lib/php/test/{{ ext }} || true) \ - && (rm -rf /usr/local/lib/php/doc/{{ ext }} || true) \ - \ -{% endif %} -{# Ensure modules that are not disabled have an appropriate ini directive and are loaded #} -{% if ('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled']) %} -{% if php_version in extensions_available[ext] and 'load_ext' in extensions_available[ext][php_version] %} - && if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then echo "extension={{ extensions_available[ext][php_version]['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; fi \ -{% elif 'all' in extensions_available[ext] and 'load_ext' in extensions_available[ext]['all'] %} - && if [ ! -f "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini" ]; then echo "extenstion={{ extensions_available[ext]['all']['load_ext'] }}" > "/usr/local/etc/php/conf.d/docker-php-ext-{{ ext }}.ini"; fi \ -{% endif %} -{% endif %} -{% endfor %} -{# Fix php.ini settings for enabled extensions #} - && if [ -f /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini ]; then \ - echo "ffi.enable = 1" >> /usr/local/etc/php/conf.d/docker-php-ext-ffi.ini; \ - fi \ -{# /Fix php.ini settings for enabled extensions #} - && chmod +x "$(php -r 'echo ini_get("extension_dir");')"/* \ - && rm -rf /tmp/* \ - \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false ${BUILD_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get install -qq -y --no-install-recommends --no-install-suggests ${RUN_DEPS} \ - && DEBIAN_FRONTEND=noninteractive apt-get purge -qq -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false apt-utils \ + ca-certificates \ && rm -rf /var/lib/apt/lists/* \ \ - && update-ca-certificates \ - \ - && (find /usr/local/bin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/lib -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) \ - && (find "$(php -r 'echo ini_get("extension_dir");')" -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) + && update-ca-certificates + + +### +### Post Install +### +{# Loop over enabled extensions #} +{%- set post_commands = {} -%} +{% for ext in extensions_enabled %} + {%- if (('disabled' not in extensions_available[ext]) or (php_version not in extensions_available[ext]['disabled'])) and ('already_avail' not in extensions_available[ext] or php_version not in extensions_available[ext]['already_avail']) %} + {#- Version specific post-command available? -#} + {%- if php_version in extensions_available[ext] and 'post' in extensions_available[ext][php_version] -%} + {{- post_commands.update({ext: extensions_available[ext][php_version]['post']}) -}} + {#- Generic post-command available? -#} + {%- elif 'all' in extensions_available[ext] and 'post' in extensions_available[ext]['all'] %} + {{- post_commands.update({ext: extensions_available[ext]['all']['post']}) -}} + {%- endif -%} + {%- endif -%} +{%- endfor -%} + +{% if post_commands | length > 0 -%} + RUN set -eux \ + {%- for ext in post_commands -%} + {{- "\n\t" }}# ---------- {{ ext }} ---------- + {{- "\n\t" }}&& {{ post_commands[ext] }} \ + {%- endfor -%} + {{- "\n\t" }}&& true{{- "\n\n\n" }} +{%- endif -%} {% if debug %} ### ### Verify ### -RUN set -x \ +RUN set -eux \ && echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \ && php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \ && /usr/local/sbin/php-fpm --test \ diff --git a/build/ansible/DOCKERFILES/Dockerfile-prod.j2 b/build/ansible/DOCKERFILES/Dockerfile-prod.j2 index 07b1e0a..4baac29 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-prod.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-prod.j2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead. +{{ edit_comment_prod }} FROM devilbox/php-fpm:{{ php_version }}-mods MAINTAINER "cytopia" @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM {{ php_version }} Image" \ - image="devilbox/php-fpm" \ - tag="{{ php_version }}-prod" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-prod" +LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-prod" +LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-prod" ### @@ -40,7 +48,6 @@ RUN set -x \ && (find /usr/local/sbin -type f -print0 | xargs -n1 -0 strip --strip-all -p 2>/dev/null || true) - {% if debug %} ### ### Verify @@ -79,7 +86,6 @@ VOLUME /var/log/php VOLUME /var/mail - ### ### Ports ### diff --git a/build/ansible/DOCKERFILES/Dockerfile-work.j2 b/build/ansible/DOCKERFILES/Dockerfile-work.j2 index 6a19ec3..aed2d54 100644 --- a/build/ansible/DOCKERFILES/Dockerfile-work.j2 +++ b/build/ansible/DOCKERFILES/Dockerfile-work.j2 @@ -1,4 +1,4 @@ -# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead. +{{ edit_comment_work }} FROM devilbox/php-fpm:{{ php_version }}-prod MAINTAINER "cytopia" @@ -6,12 +6,20 @@ MAINTAINER "cytopia" ### ### Labels ### -LABEL \ - name="cytopia's PHP-FPM {{ php_version }} Image" \ - image="devilbox/php-fpm" \ - tag="{{ php_version }}-work" \ - vendor="devilbox" \ - license="MIT" +# https://github.com/opencontainers/image-spec/blob/master/annotations.md +#LABEL "org.opencontainers.image.created"="" +#LABEL "org.opencontainers.image.version"="" +#LABEL "org.opencontainers.image.revision"="" +LABEL "maintainer"="cytopia " +LABEL "org.opencontainers.image.authors"="cytopia " +LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm" +LABEL "org.opencontainers.image.vendor"="devilbox" +LABEL "org.opencontainers.image.licenses"="MIT" +LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-work" +LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-work" +LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-work" ### @@ -415,7 +423,6 @@ COPY ./data/bash-devilbox /etc/bash-devilbox COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox - ### ### Volumes ### diff --git a/build/ansible/group_vars/all/all-ansible.yml b/build/ansible/group_vars/all/all-ansible.yml index fce9966..4f5225f 100644 --- a/build/ansible/group_vars/all/all-ansible.yml +++ b/build/ansible/group_vars/all/all-ansible.yml @@ -1,14 +1,22 @@ --- ################################################################################################### -# Ansible specifi definitions +# Ansible specific definitions ################################################################################################### +edit_comment_base: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-base.j2 instead." +edit_comment_mods: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-mods.j2 instead." +edit_comment_prod: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-prod.j2 instead." +edit_comment_work: "# Auto-generated via Ansible: edit build/ansible/DOCKERFILES/Dockerfile-work.j2 instead." + # ------------------------------------------------------------------------------------------------- # Adds version checks to Dockerfile # ------------------------------------------------------------------------------------------------- debug: True +# Also implement checks in builder images (slow, but fails faster) +build_fail_fast: True + # ------------------------------------------------------------------------------------------------- # Available PHP versions (see inventory) diff --git a/build/ansible/group_vars/all/mods.yml b/build/ansible/group_vars/all/mods.yml index b70e949..447d9b6 100644 --- a/build/ansible/group_vars/all/mods.yml +++ b/build/ansible/group_vars/all/mods.yml @@ -118,6 +118,7 @@ extensions_enabled: # # all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4: # pre: [optional] Run command before anything else +# post: [optional] Run command after anything else (builder and final image) # build_dep: [optional] Array of build dependencies # run_dep: [optional] Array of run-time dependencies # type: [required] One of 'builtin', 'pecl' or 'git' @@ -278,9 +279,11 @@ extensions_available: type: builtin pre: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] 7.0: type: builtin configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] 7.1: type: builtin configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf @@ -293,15 +296,17 @@ extensions_available: 7.4: type: builtin configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] 8.0: type: builtin configure: --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] all: type: builtin pre: ln -s /usr/lib/x86_64-linux-gnu/libXpm.* /usr/lib/ configure: --with-gd --with-vpx-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr --with-freetype-dir=/usr --enable-gd-jis-conv --enable-gd-native-ttf build_dep: [libpng-dev, libjpeg-dev, libxpm-dev, libvpx-dev, zlib1g-dev, libfreetype6-dev, libwebp-dev] - run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx4, libfreetype6, libwebp6] + run_dep: [libpng16-16, libjpeg62-turbo, libxpm4, libvpx5, libfreetype6, libwebp6] gettext: all: type: builtin @@ -346,10 +351,16 @@ extensions_available: 5.5: type: pecl run_dep: [libmagickwand-6.q16-2] + 5.6: + type: pecl + run_dep: [libmagickwand-6.q16-3] + 7.0: + type: pecl + run_dep: [libmagickwand-6.q16-3] all: type: pecl build_dep: [libmagickwand-dev] - run_dep: [libmagickwand-6.q16-3] + run_dep: [libmagickwand-6.q16-6] imap: disabled: [7.4, 8.0] # TODO: re-enable. currently fails with: configure: error: OpenSSL libraries not found. all: @@ -377,10 +388,22 @@ extensions_available: 5.5: type: builtin run_dep: [libicu52] + 5.6: + type: builtin + run_dep: [libicu57] + 7.0: + type: builtin + run_dep: [libicu57] + 7.4: + type: builtin + run_dep: [libicu57] + 8.0: + type: builtin + run_dep: [libicu57] all: type: builtin build_dep: [libicu-dev] - run_dep: [libicu57] + run_dep: [libicu63] ioncube: disabled: [7.3, 7.4, 8.0] all: @@ -495,11 +518,15 @@ extensions_available: 5.4: type: pecl version: 1.2.11 + 5.5: + type: pecl + version: 1.5.5 8.0: type: git git_url: https://github.com/mongodb/mongo-php-driver command: | - git submodule update --init \ + git checkout v1.6 \ + && git submodule update --init \ # FIXME: This is a work-around to mitigate compile error with PHP 8.0 && rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C)/)/g' \ && rgrep -I 'TSRMLS_C' | cut -d':' -f1 | sort -u | xargs -n1 sed -i'' 's/TSRMLS_C,/,/g' \ @@ -511,6 +538,18 @@ extensions_available: && sed -i'' 's/TSRMLS_FETCH();/\/\/TSRMLS_FETCH();/g' php_phongo.c \ && sed -i'' 's/TSRMLS_FETCH();/\/\/TSRMLS_FETCH();/g' phongo_compat.h \ && sed -i'' 's/TSRMLS_FETCH();/\/\/TSRMLS_FETCH();/g' src/bson.c \ + \ + && sed -i'' 's/php_phongo_handler_binary.compare_objects.*//g' src/BSON/Binary.c \ + && sed -i'' 's/php_phongo_handler_dbpointer.compare_objects.*//g' src/BSON/DBPointer.c \ + && sed -i'' 's/php_phongo_handler_int64.compare_objects.*//g' src/BSON/Int64.c \ + && sed -i'' 's/php_phongo_handler_javascript.compare_objects.*//g' src/BSON/Javascript.c \ + && sed -i'' 's/php_phongo_handler_objectid.compare_objects.*//g' src/BSON/ObjectId.c \ + && sed -i'' 's/php_phongo_handler_symbol.compare_objects.*//g' src/BSON/Symbol.c \ + && sed -i'' 's/php_phongo_handler_timestamp.compare_objects.*//g' src/BSON/Timestamp.c \ + && sed -i'' 's/php_phongo_handler_regex.compare_objects.*//g' src/BSON/Regex.c \ + && sed -i'' 's/php_phongo_handler_server.compare_objects.*//g' src/MongoDB/Server.c \ + && sed -i'' 's/php_phongo_handler_utcdatetime.compare_objects.*//g' src/BSON/UTCDateTime.c \ + \ && phpize \ && ./configure --enable-mongodb \ && make all \ @@ -592,9 +631,13 @@ extensions_available: && alien -i /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-basiclite-${ORACLE_VERSION_FULL}.x86_64.rpm \ && rm -f /tmp/oracle-instantclient${ORACLE_VERSION_MAJOR}-devel-${ORACLE_VERSION_FULL}.x86_64.rpm \ - && (ln -s /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ build_dep: [alien, libaio-dev] run_dep: [libaio1] + post: | + ORACLE_HREF="$( curl -sS https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/ | tac | tac | grep -Eo 'href="getPackage/oracle-instantclient.+basiclite.+rpm"' | tail -1 )" \ + && ORACLE_VERSION_MAJOR="$( echo "${ORACLE_HREF}" | grep -Eo 'instantclient[.0-9]+' | sed 's/instantclient//g' )" \ + && ORACLE_VERSION_FULL="$( echo "${ORACLE_HREF}" | grep -Eo 'basiclite-[-.0-9]+' | sed -e 's/basiclite-//g' -e 's/\.$//g' )" \ + && (ln -sf /usr/lib/oracle/${ORACLE_VERSION_MAJOR}/client64/lib/*.so* /usr/lib/ || true) \ odbc: disabled: "{{ php_all_versions }}" # TODO: sqlext.h' not found! opcache: @@ -745,6 +788,7 @@ extensions_available: readline: already_avail: "{{ php_all_versions }}" recode: + disabled: [7.4, 8.0] already_avail: [5.3, 5.4] all: type: builtin @@ -754,6 +798,18 @@ extensions_available: 5.2: type: pecl version: 2.2.7 + 5.3: + type: pecl + version: 4.3.0 + 5.4: + type: pecl + version: 4.3.0 + 5.5: + type: pecl + version: 4.3.0 + 5.6: + type: pecl + version: 4.3.0 7.4: type: git git_url: https://github.com/phpredis/phpredis @@ -800,6 +856,15 @@ extensions_available: 5.5: type: pecl version: 3.0.5 + 5.6: + type: pecl + version: 3.1.2 + 7.0: + type: pecl + version: 3.1.2 + 7.4: + type: pecl + version: 3.1.2 all: type: pecl build_dep: [librdkafka-dev] @@ -862,6 +927,9 @@ extensions_available: 5.6: type: pecl version: 1.9.23 + 7.0: + type: pecl + version: 4.2.13 7.3: type: git git_url: https://github.com/swoole/swoole-src @@ -876,7 +944,7 @@ extensions_available: --enable-coroutine-postgresql \ && make -j$(getconf _NPROCESSORS_ONLN) \ && make install \ - run_dep: [libnghttp2-14, libhiredis0.13] + run_dep: [libnghttp2-14, libhiredis0.14] build_dep: [libnghttp2-dev, libssl-dev, libhiredis-dev, libpq-dev, cmake] 7.4: type: git @@ -920,10 +988,22 @@ extensions_available: 5.5: type: builtin run_dep: [libtidy-0.99-0] + 5.6: + type: builtin + run_dep: [libtidy5] + 7.0: + type: builtin + run_dep: [libtidy5] + 7.4: + type: builtin + run_dep: [libtidy5] + 8.0: + type: builtin + run_dep: [libtidy5] all: type: builtin build_dep: [libtidy-dev] - run_dep: [libtidy5] + run_dep: [libtidy5deb1] tokenizer: already_avail: "{{ php_all_versions }}" uploadprogress: