From ed649993cad6e1c379868e1657557f77c7fca1a4 Mon Sep 17 00:00:00 2001 From: Patrick Kivits Date: Wed, 27 Jan 2021 08:24:44 +0100 Subject: [PATCH 1/2] Add PHP Decimal extension support --- DOCUMENTATION/content/documentation/index.md | 14 ++++++++++++++ docker-compose.yml | 2 ++ env-example | 2 ++ php-fpm/Dockerfile | 15 +++++++++++++++ workspace/Dockerfile | 18 ++++++++++++++++++ 5 files changed, 51 insertions(+) diff --git a/DOCUMENTATION/content/documentation/index.md b/DOCUMENTATION/content/documentation/index.md index b31ce459..8fb29506 100644 --- a/DOCUMENTATION/content/documentation/index.md +++ b/DOCUMENTATION/content/documentation/index.md @@ -2291,6 +2291,20 @@ AST exposes the abstract syntax tree generated by PHP 7+. This extension is requ **Note** If you need a specific version of AST then search for the `WORKSPACE_AST_VERSION` argument under the Workspace Container and set it to the desired version and continue step 4. +
+ +## Install PHP Decimal extension +The PHP Decimal extension adds support for correctly-rounded, arbitrary-precision decimal floating point arithmetic. Applications that rely on accurate numbers (ie. money, measurements, or mathematics) can use Decimal instead of float or string to represent numerical values. + +For more information visit the [PHP Decimal website](https://php-decimal.io). + +2 - Search for the `WORKSPACE_INSTALL_PHPDECIMAL` argument under the Workspace Container + +2 - Search for the `PHP_FPM_INSTALL_PHPDECIMAL` argument under the PHP-FPM container + +3 - Set it to `true` + +4 - Re-build the container `docker-compose build workspace php-fpm`
diff --git a/docker-compose.yml b/docker-compose.yml index 37b597d4..c9a79635 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -163,6 +163,7 @@ services: - INSTALL_GNU_PARALLEL=${WORKSPACE_INSTALL_GNU_PARALLEL} - INSTALL_LNAV=${WORKSPACE_INSTALL_LNAV} - INSTALL_PROTOC=${WORKSPACE_INSTALL_PROTOC} + - INSTALL_PHPDECIMAL=${WORKSPACE_INSTALL_PHPDECIMAL} - PROTOC_VERSION=${WORKSPACE_PROTOC_VERSION} - INSTALL_DOCKER_CLIENT=${WORKSPACE_INSTALL_DOCKER_CLIENT} - http_proxy @@ -258,6 +259,7 @@ services: - INSTALL_WKHTMLTOPDF=${PHP_FPM_INSTALL_WKHTMLTOPDF} - INSTALL_XHPROF=${PHP_FPM_INSTALL_XHPROF} - INSTALL_XMLRPC=${PHP_FPM_INSTALL_XMLRPC} + - INSTALL_PHPDECIMAL=${PHP_FPM_INSTALL_PHPDECIMAL} - DOWNGRADE_OPENSSL_TLS_AND_SECLEVEL=${PHP_DOWNGRADE_OPENSSL_TLS_AND_SECLEVEL} - PUID=${PHP_FPM_PUID} - PGID=${PHP_FPM_PGID} diff --git a/env-example b/env-example index cf64e758..6888b570 100644 --- a/env-example +++ b/env-example @@ -195,6 +195,7 @@ WORKSPACE_INSTALL_GIT_PROMPT=false WORKSPACE_INSTALL_DOCKER_CLIENT=false WORKSPACE_INSTALL_LNAV=false WORKSPACE_INSTALL_PROTOC=false +WORKSPACE_INSTALL_PHPDECIMAL=false WORKSPACE_PROTOC_VERSION=latest ### PHP_FPM ############################################### @@ -252,6 +253,7 @@ PHP_FPM_INSTALL_PING=false PHP_FPM_INSTALL_SSHPASS=false PHP_FPM_INSTALL_MAILPARSE=false PHP_FPM_INSTALL_WKHTMLTOPDF=false +PHP_FPM_INSTALL_PHPDECIMAL=false PHP_FPM_FFMPEG=false PHP_FPM_AUDIOWAVEFORM=false PHP_FPM_ADDITIONAL_LOCALES="en_US.UTF-8 es_ES.UTF-8 fr_FR.UTF-8" diff --git a/php-fpm/Dockerfile b/php-fpm/Dockerfile index a1e7051a..86215b14 100644 --- a/php-fpm/Dockerfile +++ b/php-fpm/Dockerfile @@ -977,6 +977,21 @@ RUN if [ ${INSTALL_XMLRPC} = true ]; then \ docker-php-ext-install xmlrpc \ ;fi +########################################################################### +# PHP DECIMAL: +########################################################################### + +USER root + +ARG INSTALL_PHPDECIMAL=false + +RUN if [ ${INSTALL_PHPDECIMAL} = true ]; then \ + apt-get update -yqq \ + && apt-get install -y libmpdec-dev \ + && pecl install decimal \ + && docker-php-ext-enable decimal \ +;fi + ########################################################################### # New Relic for PHP: ########################################################################### diff --git a/workspace/Dockerfile b/workspace/Dockerfile index c6c51054..ffad2d90 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -1601,6 +1601,24 @@ RUN if [ ${SHELL_OH_MY_ZSH} = true ]; then \ USER root + +########################################################################### +# PHP DECIMAL: +########################################################################### + +USER root + +ARG INSTALL_PHPDECIMAL=false + +RUN if [ ${INSTALL_PHPDECIMAL} = true ]; then \ + apt-get update -yqq \ + && apt-get install -y libmpdec-dev \ + && pecl install decimal \ + && echo "extension=decimal.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/decimal.ini \ + && ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/decimal.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-decimal.ini \ + && php -m | grep -q 'decimal' \ +;fi + # #-------------------------------------------------------------------------- # Final Touch From f35d5a7f10b080f5c64c36c4a1e8c923608f4eb9 Mon Sep 17 00:00:00 2001 From: Patrick Kivits Date: Tue, 2 Mar 2021 10:20:06 +0100 Subject: [PATCH 2/2] Install workspace redis with pecl --- workspace/Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/workspace/Dockerfile b/workspace/Dockerfile index ffad2d90..0bed95e7 100644 --- a/workspace/Dockerfile +++ b/workspace/Dockerfile @@ -559,8 +559,9 @@ RUN if [ ${INSTALL_GEARMAN} = true ]; then \ ARG INSTALL_PHPREDIS=false RUN if [ ${INSTALL_PHPREDIS} = true ]; then \ - apt-get update -yqq && \ - apt-get install -yqq php-redis \ + pecl -q install -o -f redis && \ + echo "extension=redis.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/redis.ini && \ + phpenmod redis \ ;fi ###########################################################################