diff --git a/php/7/build/Dockerfile b/php/7/build/Dockerfile index f05234ac2..d6766804a 100644 --- a/php/7/build/Dockerfile +++ b/php/7/build/Dockerfile @@ -14,6 +14,7 @@ RUN if [ "${CONTAINER_PACKAGE_URL}" != "https://deb.debian.org" ]; then \ apt-get update; \ fi +COPY ./data /tmp/data COPY data/install-ext /usr/local/bin/ RUN chmod uga+x /usr/local/bin/install-ext diff --git a/php/7/build/data/imagick-3.8.0.tar.gz b/php/7/build/data/imagick-3.8.0.tar.gz new file mode 100644 index 000000000..a87f5e4af Binary files /dev/null and b/php/7/build/data/imagick-3.8.0.tar.gz differ diff --git a/php/7/build/data/install-ext b/php/7/build/data/install-ext index 6a1480439..7b60535a0 100644 --- a/php/7/build/data/install-ext +++ b/php/7/build/data/install-ext @@ -10,15 +10,17 @@ echo "Install extensions : $1" echo "============================================" echo -isPhpVersionGreaterOrEqual() { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") +installExtensionFromTgz(){ + tgzName=$1 + result="" + extensionName="${tgzName%%-*}" + shift 1 + result=$@ + mkdir ${extensionName} + tar -zxvf /tmp/data/${tgzName}.tgz -C ${extensionName} --strip-components=1 + ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - if [ "$PHP_MAJOR_VERSION" -gt "$1" ] || [ "$PHP_MAJOR_VERSION" -eq "$1" ] && [ "$PHP_MINOR_VERSION" -ge "$2" ]; then - return 1 - else - return 0 - fi + docker-php-ext-enable ${extensionName} } is_extension_installed() { @@ -131,6 +133,12 @@ install_yaf() { docker-php-ext-enable yaf } +install_imagick() { + apt-get update && apt-get install -y libmagickwand-dev + installExtensionFromTgz imagick-3.8.0 + install_msg imagick +} + install_extension() { local extension=$1 if [ -z "$extension" ]; then @@ -199,13 +207,14 @@ install_extension() { apt-get update && apt-get install -y libzip-dev docker_php_ext_install zip elif [ "$extension" = "memcached" ]; then - install_php_extensions memcached + apt-get update && apt-get install -y libmemcached-dev + pecl_install memcached elif [ "$extension" = "igbinary" ]; then - install_php_extensions igbinary + pecl_install igbinary elif [ "$extension" = "apcu" ]; then - install_php_extensions apcu + pecl_install apcu elif [ "$extension" = "redis" ]; then - install_php_extensions redis + pecl_install redis elif [ "$extension" = "xdebug" ]; then install_php_extensions xdebug elif [ "$extension" = "imap" ]; then @@ -253,7 +262,7 @@ install_extension() { elif [ "$extension" = "ldap" ]; then install_php_extensions ldap elif [ "$extension" = "imagick" ]; then - install_php_extensions imagick + install_imagick elif [ "$extension" = "amqp" ]; then install_php_extensions amqp elif [ "$extension" = "zookeeper" ]; then diff --git a/php/8/build/Dockerfile b/php/8/build/Dockerfile index e27b2bb8e..549eff8ab 100644 --- a/php/8/build/Dockerfile +++ b/php/8/build/Dockerfile @@ -7,6 +7,8 @@ ARG CONTAINER_PACKAGE_URL RUN sed -i "s|URIs: http://deb.debian.org/debian|URIs: ${CONTAINER_PACKAGE_URL}/debian|g" /etc/apt/sources.list.d/debian.sources && \ apt-get update +COPY ./data /tmp/data + COPY data/install-ext /usr/local/bin/ RUN chmod uga+x /usr/local/bin/install-ext diff --git a/php/8/build/data/imagick-3.8.0.tar.gz b/php/8/build/data/imagick-3.8.0.tar.gz new file mode 100644 index 000000000..a87f5e4af Binary files /dev/null and b/php/8/build/data/imagick-3.8.0.tar.gz differ diff --git a/php/8/build/data/install-ext b/php/8/build/data/install-ext index 51c76b406..f7ba5078b 100644 --- a/php/8/build/data/install-ext +++ b/php/8/build/data/install-ext @@ -10,15 +10,18 @@ echo "Install extensions : $1" echo "============================================" echo -isPhpVersionGreaterOrEqual() { - local PHP_MAJOR_VERSION=$(php -r "echo PHP_MAJOR_VERSION;") - local PHP_MINOR_VERSION=$(php -r "echo PHP_MINOR_VERSION;") +installExtensionFromTgz() +{ + tgzName=$1 + result="" + extensionName="${tgzName%%-*}" + shift 1 + result=$@ + mkdir ${extensionName} + tar -zxvf /tmp/data/${tgzName}.tgz -C ${extensionName} --strip-components=1 + ( cd ${extensionName} && phpize && ./configure ${result} && make ${MC} && make install ) - if [ "$PHP_MAJOR_VERSION" -gt "$1" ] || [ "$PHP_MAJOR_VERSION" -eq "$1" ] && [ "$PHP_MINOR_VERSION" -ge "$2" ]; then - return 1 - else - return 0 - fi + docker-php-ext-enable ${extensionName} } is_extension_installed() { @@ -131,6 +134,12 @@ install_yaf() { docker-php-ext-enable yaf } +install_imagick() { + apt-get update && apt-get install -y libmagickwand-dev + installExtensionFromTgz imagick-3.8.0 + install_msg imagick +} + install_extension() { local extension=$1 if [ -z "$extension" ]; then @@ -199,13 +208,14 @@ install_extension() { apt-get update && apt-get install -y libzip-dev docker_php_ext_install zip elif [ "$extension" = "memcached" ]; then - install_php_extensions memcached + apt-get update && apt-get install -y libmemcached-dev + pecl_install memcached elif [ "$extension" = "igbinary" ]; then - install_php_extensions igbinary + pecl_install igbinary elif [ "$extension" = "apcu" ]; then - install_php_extensions apcu + pecl_install apcu elif [ "$extension" = "redis" ]; then - install_php_extensions redis + pecl_install redis elif [ "$extension" = "xdebug" ]; then install_php_extensions xdebug elif [ "$extension" = "imap" ]; then @@ -253,7 +263,7 @@ install_extension() { elif [ "$extension" = "ldap" ]; then install_php_extensions ldap elif [ "$extension" = "imagick" ]; then - install_php_extensions imagick + install_imagick elif [ "$extension" = "amqp" ]; then install_php_extensions amqp elif [ "$extension" = "zookeeper" ]; then