Browse Source

Merge pull request #3112 from Yohoed/master

Add php xlswriter extension
Shao Yu-Lung (Allen) 3 years ago
parent
commit
ba31d63a00
5 changed files with 62 additions and 0 deletions
  1. 3 0
      .env.example
  2. 3 0
      docker-compose.yml
  3. 17 0
      php-fpm/Dockerfile
  4. 18 0
      php-worker/Dockerfile
  5. 21 0
      workspace/Dockerfile

+ 3 - 0
.env.example

@@ -145,6 +145,7 @@ WORKSPACE_INSTALL_OCI8=false
 WORKSPACE_INSTALL_V8JS=false
 WORKSPACE_INSTALL_LARAVEL_ENVOY=false
 WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
+WORKSPACE_INSTALL_XLSWRITER=false
 WORKSPACE_INSTALL_DEPLOYER=false
 WORKSPACE_INSTALL_PRESTISSIMO=false
 WORKSPACE_INSTALL_LINUXBREW=false
@@ -260,6 +261,7 @@ PHP_FPM_INSTALL_PING=false
 PHP_FPM_INSTALL_SSHPASS=false
 PHP_FPM_INSTALL_MAILPARSE=false
 PHP_FPM_INSTALL_WKHTMLTOPDF=false
+PHP_FPM_INSTALL_XLSWRITER=false
 PHP_FPM_INSTALL_PHPDECIMAL=false
 PHP_FPM_INSTALL_ZOOKEEPER=false
 PHP_FPM_INSTALL_SSDB=false
@@ -284,6 +286,7 @@ PHP_FPM_NEW_RELIC_APP_NAME=app_name
 
 PHP_WORKER_INSTALL_BZ2=false
 PHP_WORKER_INSTALL_GD=false
+PHP_WORKER_INSTALL_XLSWRITER=false
 PHP_WORKER_INSTALL_IMAGEMAGICK=false
 PHP_WORKER_IMAGEMAGICK_VERSION=latest
 PHP_WORKER_INSTALL_GMP=false

+ 3 - 0
docker-compose.yml

@@ -115,6 +115,7 @@ services:
           - INSTALL_WORKSPACE_SSH=${WORKSPACE_INSTALL_WORKSPACE_SSH}
           - INSTALL_LARAVEL_ENVOY=${WORKSPACE_INSTALL_LARAVEL_ENVOY}
           - INSTALL_LARAVEL_INSTALLER=${WORKSPACE_INSTALL_LARAVEL_INSTALLER}
+          - INSTALL_XLSWRITER=${WORKSPACE_INSTALL_XLSWRITER}
           - INSTALL_DEPLOYER=${WORKSPACE_INSTALL_DEPLOYER}
           - INSTALL_PRESTISSIMO=${WORKSPACE_INSTALL_PRESTISSIMO}
           - INSTALL_LINUXBREW=${WORKSPACE_INSTALL_LINUXBREW}
@@ -247,6 +248,7 @@ services:
           - INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
           - INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
           - INSTALL_CALENDAR=${PHP_FPM_INSTALL_CALENDAR}
+          - INSTALL_XLSWRITER=${PHP_FPM_INSTALL_XLSWRITER}
           - INSTALL_FAKETIME=${PHP_FPM_INSTALL_FAKETIME}
           - INSTALL_IONCUBE=${PHP_FPM_INSTALL_IONCUBE}
           - INSTALL_APCU=${PHP_FPM_INSTALL_APCU}
@@ -327,6 +329,7 @@ services:
           - INSTALL_OCI8=${PHP_WORKER_INSTALL_OCI8}
           - INSTALL_MSSQL=${PHP_WORKER_INSTALL_MSSQL}
           - INSTALL_PHALCON=${PHP_WORKER_INSTALL_PHALCON}
+          - INSTALL_XLSWRITER=${PHP_WORKER_INSTALL_XLSWRITER}
           - INSTALL_SOAP=${PHP_WORKER_INSTALL_SOAP}
           - INSTALL_ZIP_ARCHIVE=${PHP_WORKER_INSTALL_ZIP_ARCHIVE}
           - INSTALL_MYSQL_CLIENT=${PHP_WORKER_INSTALL_MYSQL_CLIENT}

+ 17 - 0
php-fpm/Dockerfile

@@ -484,6 +484,23 @@ RUN if [ ${INSTALL_GEARMAN} = true ]; then \
     docker-php-ext-enable gearman \
 ;fi
 
+###########################################################################
+# xlswriter:
+###########################################################################
+
+ARG INSTALL_XLSWRITER=false
+RUN set -eux; \
+    if [ ${INSTALL_XLSWRITER} = true ]; then \
+      # Install Php xlswriter Extension \
+      if [ $(php -r "echo PHP_MAJOR_VERSION;") > "5" ]; then \
+          pecl install xlswriter  &&\
+          docker-php-ext-enable xlswriter &&\
+          php -m | grep -q 'xlswriter'; \
+      else \
+          echo "PHP Extension for xlswriter is not supported for PHP 5.0";\
+      fi \
+    ;fi
+
 ###########################################################################
 # pcntl
 ###########################################################################

+ 18 - 0
php-worker/Dockerfile

@@ -363,6 +363,24 @@ RUN set -eux; \
     php -m | grep -oiE '^swoole$'; \
   fi
 
+###########################################################################
+# xlswriter:
+###########################################################################
+
+ARG INSTALL_XLSWRITER=false
+
+RUN set -eux; \
+    if [ ${INSTALL_XLSWRITER} = true ]; then \
+      # Install Php xlswriter Extension \
+      if   [ $(php -r "echo PHP_MAJOR_VERSION;") > "5" ]; then \
+          pecl install xlswriter && \
+          docker-php-ext-enable xlswriter && \
+          php -m | grep -q 'xlswriter'; \
+      else \
+          echo "PHP Extension for xlswriter is not supported for PHP 5.0"; \
+      fi \
+    ;fi
+
 ###########################################################################
 # Taint EXTENSION
 ###########################################################################

+ 21 - 0
workspace/Dockerfile

@@ -557,6 +557,27 @@ RUN set -eux; \
       php -m | grep -q 'swoole'; \
     fi
 
+
+
+###########################################################################
+# xlswriter:
+###########################################################################
+
+ARG INSTALL_XLSWRITER=false
+RUN set -eux; \
+    if [ ${INSTALL_XLSWRITER} = true ]; then \
+      # Install Php xlswriter Extension
+      if [ $(php -r "echo PHP_MAJOR_VERSION;") > "5" ]; then \
+        echo '' | pecl -q install xlswriter && \
+        echo "extension=xlswriter.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/xlswriter.ini && \
+        ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/xlswriter.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-xlswriter.ini; \
+        php -m | grep -q 'xlswriter'; \
+      else \
+        echo "PHP Extension for xlswriter is not supported for PHP 5.0"; \
+      fi \
+    ;fi
+
+
 ###########################################################################
 # Taint EXTENSION
 ###########################################################################