Skip to content

Instantly share code, notes, and snippets.

@jacobsantos
Last active December 8, 2016 16:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jacobsantos/773fc5d630cbf9892d4836714844477f to your computer and use it in GitHub Desktop.
Save jacobsantos/773fc5d630cbf9892d4836714844477f to your computer and use it in GitHub Desktop.
PHP Excel Dockerfile using php:7.0-fpm
Sending build context to Docker daemon 87.04 kB
Step 1 : FROM php:7.0-fpm
---> a4ecb424acb5
Step 2 : RUN set -ex && apt-get update && apt-get install -y curl g++ openssl libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng12-dev libicu-dev libxml2-dev libcurl4-openssl-dev libsodium-dev && docker-php-ext-install -j$(nproc) iconv mcrypt json intl xml gettext mbstring soap zip curl mysqli pdo pdo_mysql && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && docker-php-ext-install -j$(nproc) gd && docker-php-ext-configure bcmath && docker-php-ext-install bcmath && pecl install apc && pecl install libsodium && docker-php-ext-enable libsodium
---> Using cache
---> 726852f013fd
Step 3 : RUN set -ex && apt-get update && apt-get install -y wget unzip libxml2-dev && curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer && curl -fsSL 'http://www.libxl.com/download/libxl-lin-3.6.5.tar.gz' -o /tmp/libxl.tar.gz && tar zxvf /tmp/libxl.tar.gz --directory /tmp/ && mkdir -p /opt/libxl && ls -la /tmp/libxl-* && cp -r /tmp/libxl-3.6.5.0/* /opt/libxl && ls -la /opt/libxl && curl -fsSL 'https://github.com/iliaal/php_excel/archive/php7.zip' -o /tmp/php_excel.zip && unzip -o /tmp/php_excel.zip -d /tmp && cd /tmp/php_excel-php7 && phpize && ./configure --with-php-config=$(which php-config) --with-libxl-incdir=/opt/libxl/include_c/ --with-libxl-libdir=/opt/libxl/lib64/ --with-excel=/opt/libxl --with-libxml-dir=/usr/include/libxml2 && make -j$(nproc) && make install && cp /tmp/php_excel-php7/modules/excel.so /usr/local/lib/php/extensions/no-debug-non-zts-20151012/excel.so && docker-php-source delete && rm -r /tmp/*
---> Running in f8c3b664d19d
+ apt-get update
Hit http://security.debian.org jessie/updates InRelease
Ign http://deb.debian.org jessie InRelease
Get:1 http://deb.debian.org jessie-updates InRelease [145 kB]
Hit http://deb.debian.org jessie Release.gpg
Hit http://deb.debian.org jessie Release
Get:2 http://security.debian.org jessie/updates/main amd64 Packages [421 kB]
Get:3 http://deb.debian.org jessie-updates/main amd64 Packages [17.6 kB]
Get:4 http://deb.debian.org jessie/main amd64 Packages [9064 kB]
Fetched 9647 kB in 12s (764 kB/s)
Reading package lists...
+ apt-get install -y wget unzip libxml2-dev
Reading package lists...
Building dependency tree...
Reading state information...
libxml2-dev is already the newest version.
Suggested packages:
zip
The following NEW packages will be installed:
libpsl0 unzip wget
0 upgraded, 3 newly installed, 0 to remove and 1 not upgraded.
Need to get 700 kB of archives.
After this operation, 2636 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian/ jessie/main libpsl0 amd64 0.5.1-1 [41.6 kB]
Get:2 http://deb.debian.org/debian/ jessie/main wget amd64 1.16-1+deb8u1 [496 kB]
Get:3 http://deb.debian.org/debian/ jessie/main unzip amd64 6.0-16+deb8u2 [162 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 700 kB in 1s (576 kB/s)
Selecting previously unselected package libpsl0:amd64.
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 13254 files and directories currently installed.)
Preparing to unpack .../libpsl0_0.5.1-1_amd64.deb ...
Unpacking libpsl0:amd64 (0.5.1-1) ...
Selecting previously unselected package wget.
Preparing to unpack .../wget_1.16-1+deb8u1_amd64.deb ...
Unpacking wget (1.16-1+deb8u1) ...
Selecting previously unselected package unzip.
Preparing to unpack .../unzip_6.0-16+deb8u2_amd64.deb ...
Unpacking unzip (6.0-16+deb8u2) ...
Setting up libpsl0:amd64 (0.5.1-1) ...
Setting up wget (1.16-1+deb8u1) ...
Setting up unzip (6.0-16+deb8u2) ...
Processing triggers for libc-bin (2.19-18+deb8u6) ...
+ + curlphp -sS https://getcomposer.org/installer
 -- --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer
Downloading 1.2.4...
Composer successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
+ curl -fsSL http://www.libxl.com/download/libxl-lin-3.6.5.tar.gz -o /tmp/libxl.tar.gz
+ tar zxvf /tmp/libxl.tar.gz --directory /tmp/
libxl-3.6.5.0/
libxl-3.6.5.0/lib/
libxl-3.6.5.0/lib/libxl.so
libxl-3.6.5.0/lib64/
libxl-3.6.5.0/lib64/libxl.so
libxl-3.6.5.0/examples/
libxl-3.6.5.0/examples/python/
libxl-3.6.5.0/examples/python/setup.py
libxl-3.6.5.0/examples/python/font.h
libxl-3.6.5.0/examples/python/font.c
libxl-3.6.5.0/examples/python/sheet.h
libxl-3.6.5.0/examples/python/book.c
libxl-3.6.5.0/examples/python/book.h
libxl-3.6.5.0/examples/python/tests/
libxl-3.6.5.0/examples/python/tests/test.format.py
libxl-3.6.5.0/examples/python/tests/book.xls
libxl-3.6.5.0/examples/python/tests/logo.png
libxl-3.6.5.0/examples/python/tests/__init__.py
libxl-3.6.5.0/examples/python/tests/test.sheet.py
libxl-3.6.5.0/examples/python/tests/test.book.py
libxl-3.6.5.0/examples/python/sheet.c
libxl-3.6.5.0/examples/python/README.md
libxl-3.6.5.0/examples/python/libxlpy.c
libxl-3.6.5.0/examples/python/format.c
libxl-3.6.5.0/examples/python/format.h
libxl-3.6.5.0/examples/code.blocks/
libxl-3.6.5.0/examples/code.blocks/main.cpp
libxl-3.6.5.0/examples/code.blocks/cb-libxl.cbp
libxl-3.6.5.0/examples/qt/
libxl-3.6.5.0/examples/qt/qt-libxl.pro
libxl-3.6.5.0/examples/qt/mainwindow.ui
libxl-3.6.5.0/examples/qt/mainwindow.h
libxl-3.6.5.0/examples/qt/mainwindow.cpp
libxl-3.6.5.0/examples/qt/main.cpp
libxl-3.6.5.0/examples/c/
libxl-3.6.5.0/examples/c/custom.c
libxl-3.6.5.0/examples/c/invoice.c
libxl-3.6.5.0/examples/c/performance.c
libxl-3.6.5.0/examples/c/generate.c
libxl-3.6.5.0/examples/c/extract.c
libxl-3.6.5.0/examples/c/format.c
libxl-3.6.5.0/examples/c/makefile
libxl-3.6.5.0/examples/c/edit.c
libxl-3.6.5.0/examples/c++/
libxl-3.6.5.0/examples/c++/read.cpp
libxl-3.6.5.0/examples/c++/custom.cpp
libxl-3.6.5.0/examples/c++/write.cpp
libxl-3.6.5.0/examples/c++/format.cpp
libxl-3.6.5.0/examples/c++/performance.cpp
libxl-3.6.5.0/examples/c++/edit.cpp
libxl-3.6.5.0/examples/c++/makefile
libxl-3.6.5.0/examples/c++/invoice.cpp
libxl-3.6.5.0/license.txt
libxl-3.6.5.0/include_c/
libxl-3.6.5.0/include_c/handle.h
libxl-3.6.5.0/include_c/setup.h
libxl-3.6.5.0/include_c/SheetA.h
libxl-3.6.5.0/include_c/BookA.h
libxl-3.6.5.0/include_c/BookW.h
libxl-3.6.5.0/include_c/FormatW.h
libxl-3.6.5.0/include_c/libxl.h
libxl-3.6.5.0/include_c/SheetW.h
libxl-3.6.5.0/include_c/FontA.h
libxl-3.6.5.0/include_c/FontW.h
libxl-3.6.5.0/include_c/enum.h
libxl-3.6.5.0/include_c/FormatA.h
libxl-3.6.5.0/include_cpp/
libxl-3.6.5.0/include_cpp/IFontT.h
libxl-3.6.5.0/include_cpp/setup.h
libxl-3.6.5.0/include_cpp/IFormatT.h
libxl-3.6.5.0/include_cpp/ISheetT.h
libxl-3.6.5.0/include_cpp/libxl.h
libxl-3.6.5.0/include_cpp/enum.h
libxl-3.6.5.0/include_cpp/IBookT.h
libxl-3.6.5.0/doc/
libxl-3.6.5.0/doc/colors.html
libxl-3.6.5.0/doc/workbook.html
libxl-3.6.5.0/doc/style.css
libxl-3.6.5.0/doc/font.html
libxl-3.6.5.0/doc/custom-format.html
libxl-3.6.5.0/doc/spreadsheet.html
libxl-3.6.5.0/doc/images/
libxl-3.6.5.0/doc/images/alignv_center.png
libxl-3.6.5.0/doc/images/underline_none.png
libxl-3.6.5.0/doc/images/pattern_gray6p25.png
libxl-3.6.5.0/doc/images/pattern_verstripe.png
libxl-3.6.5.0/doc/images/pattern_thinrevdiagstripe.png
libxl-3.6.5.0/doc/images/pattern_gray75.png
libxl-3.6.5.0/doc/images/alignh_left.png
libxl-3.6.5.0/doc/images/favicon.ico
libxl-3.6.5.0/doc/images/pattern_diagcrosshatch.png
libxl-3.6.5.0/doc/images/borderdiagonal_down.png
libxl-3.6.5.0/doc/images/pattern_thinverstripe.png
libxl-3.6.5.0/doc/images/alignh_fill.png
libxl-3.6.5.0/doc/images/alignv_bottom.png
libxl-3.6.5.0/doc/images/pattern_solid.png
libxl-3.6.5.0/doc/images/alignh_right.png
libxl-3.6.5.0/doc/images/underline_singleacc.png
libxl-3.6.5.0/doc/images/borderdiagonal_none.png
libxl-3.6.5.0/doc/images/borderstyle_double.png
libxl-3.6.5.0/doc/images/underline_double.png
libxl-3.6.5.0/doc/images/alignv_justify.png
libxl-3.6.5.0/doc/images/borderstyle_mediumdashed.png
libxl-3.6.5.0/doc/images/alignv_top.png
libxl-3.6.5.0/doc/images/pattern_thinhorcrosshatch.png
libxl-3.6.5.0/doc/images/borderstyle_mediumdashdotdot.png
libxl-3.6.5.0/doc/images/borderdiagonal_up.png
libxl-3.6.5.0/doc/images/borderstyle_medium.png
libxl-3.6.5.0/doc/images/pattern_thinhorstripe.png
libxl-3.6.5.0/doc/images/alignh_merge.png
libxl-3.6.5.0/doc/images/alignh_center.png
libxl-3.6.5.0/doc/images/borderdiagonal_both.png
libxl-3.6.5.0/doc/images/underline_doubleacc.png
libxl-3.6.5.0/doc/images/alignv_distributed.png
libxl-3.6.5.0/doc/images/borderstyle_thick.png
libxl-3.6.5.0/doc/images/logo.png
libxl-3.6.5.0/doc/images/borderstyle_hair.png
libxl-3.6.5.0/doc/images/pattern_thindiagstripe.png
libxl-3.6.5.0/doc/images/pattern_gray12p5.png
libxl-3.6.5.0/doc/images/alignh_justify.png
libxl-3.6.5.0/doc/images/underline_single.png
libxl-3.6.5.0/doc/images/pattern_diagstripe.png
libxl-3.6.5.0/doc/images/alignh_general.png
libxl-3.6.5.0/doc/images/pattern_thickdiagcrosshatch.png
libxl-3.6.5.0/doc/images/borderstyle_slantdashdot.png
libxl-3.6.5.0/doc/images/borderstyle_dashdot.png
libxl-3.6.5.0/doc/images/borderstyle_thin.png
libxl-3.6.5.0/doc/images/borderstyle_dashed.png
libxl-3.6.5.0/doc/images/pattern_horstripe.png
libxl-3.6.5.0/doc/images/pattern_gray50.png
libxl-3.6.5.0/doc/images/pattern_revdiagstripe.png
libxl-3.6.5.0/doc/images/borderstyle_dashdotdot.png
libxl-3.6.5.0/doc/images/alignh_distributed.png
libxl-3.6.5.0/doc/images/borderstyle_mediumdashdot.png
libxl-3.6.5.0/doc/images/borderstyle_none.png
libxl-3.6.5.0/doc/images/pattern_gray25.png
libxl-3.6.5.0/doc/images/pattern_thindiagcrosshatch.png
libxl-3.6.5.0/doc/images/borderstyle_dotted.png
libxl-3.6.5.0/doc/index.html
libxl-3.6.5.0/doc/format.html
libxl-3.6.5.0/readme.txt
libxl-3.6.5.0/changelog.txt
+ mkdir -p /opt/libxl
+ ls -la /tmp/libxl-3.6.5.0
total 80
drwxr-xr-x 8 1000 1000 4096 Nov 18 2015 .
drwxrwxrwt 5 root root 4096 Dec 8 16:23 ..
-rw-r--r-- 1 1000 1000 29863 Nov 18 2015 changelog.txt
drwxr-xr-x 3 1000 1000 4096 Nov 18 2015 doc
drwxr-xr-x 7 1000 1000 4096 Nov 18 2015 examples
drwxr-xr-x 2 1000 1000 4096 Nov 18 2015 include_c
drwxr-xr-x 2 1000 1000 4096 Nov 18 2015 include_cpp
drwxr-xr-x 2 1000 1000 4096 Nov 18 2015 lib
drwxr-xr-x 2 1000 1000 4096 Nov 18 2015 lib64
-rw-r--r-- 1 1000 1000 8376 Nov 18 2015 license.txt
-rw-r--r-- 1 1000 1000 748 Nov 18 2015 readme.txt
+ cp -r /tmp/libxl-3.6.5.0/changelog.txt /tmp/libxl-3.6.5.0/doc /tmp/libxl-3.6.5.0/examples /tmp/libxl-3.6.5.0/include_c /tmp/libxl-3.6.5.0/include_cpp /tmp/libxl-3.6.5.0/lib /tmp/libxl-3.6.5.0/lib64 /tmp/libxl-3.6.5.0/license.txt /tmp/libxl-3.6.5.0/readme.txt /opt/libxl
+ ls -la /opt/libxl
+ curl -fsSL https://github.com/iliaal/php_excel/archive/php7.zip -o /tmp/php_excel.zip
total 80
drwxr-xr-x 8 root root 4096 Dec 8 16:23 .
drwxr-xr-x 3 root root 4096 Dec 8 16:23 ..
-rw-r--r-- 1 root root 29863 Dec 8 16:23 changelog.txt
drwxr-xr-x 3 root root 4096 Dec 8 16:23 doc
drwxr-xr-x 7 root root 4096 Dec 8 16:23 examples
drwxr-xr-x 2 root root 4096 Dec 8 16:23 include_c
drwxr-xr-x 2 root root 4096 Dec 8 16:23 include_cpp
drwxr-xr-x 2 root root 4096 Dec 8 16:23 lib
drwxr-xr-x 2 root root 4096 Dec 8 16:23 lib64
-rw-r--r-- 1 root root 8376 Dec 8 16:23 license.txt
-rw-r--r-- 1 root root 748 Dec 8 16:23 readme.txt
+ unzip -o /tmp/php_excel.zip -d /tmp
Archive: /tmp/php_excel.zip
3ada67e0e928794d55eed777eb16b646b70560b4
creating: /tmp/php_excel-php7/
inflating: /tmp/php_excel-php7/.gitignore
extracting: /tmp/php_excel-php7/CREDITS
inflating: /tmp/php_excel-php7/ChangeLog
inflating: /tmp/php_excel-php7/README.markdown
inflating: /tmp/php_excel-php7/config.m4
inflating: /tmp/php_excel-php7/config.w32
creating: /tmp/php_excel-php7/docs/
inflating: /tmp/php_excel-php7/docs/ExcelAutoFilter.php
inflating: /tmp/php_excel-php7/docs/ExcelBook.php
inflating: /tmp/php_excel-php7/docs/ExcelFilterColumn.php
inflating: /tmp/php_excel-php7/docs/ExcelFont.php
inflating: /tmp/php_excel-php7/docs/ExcelFormat.php
inflating: /tmp/php_excel-php7/docs/ExcelSheet.php
inflating: /tmp/php_excel-php7/excel.c
inflating: /tmp/php_excel-php7/package.xml
inflating: /tmp/php_excel-php7/php_excel.h
creating: /tmp/php_excel-php7/tests/
inflating: /tmp/php_excel-php7/tests/000.phpt
inflating: /tmp/php_excel-php7/tests/001.phpt
inflating: /tmp/php_excel-php7/tests/002.phpt
inflating: /tmp/php_excel-php7/tests/003.phpt
inflating: /tmp/php_excel-php7/tests/004.phpt
inflating: /tmp/php_excel-php7/tests/005.phpt
inflating: /tmp/php_excel-php7/tests/006.phpt
inflating: /tmp/php_excel-php7/tests/007.phpt
inflating: /tmp/php_excel-php7/tests/008.phpt
inflating: /tmp/php_excel-php7/tests/009.phpt
inflating: /tmp/php_excel-php7/tests/010.phpt
inflating: /tmp/php_excel-php7/tests/011.phpt
inflating: /tmp/php_excel-php7/tests/012.phpt
inflating: /tmp/php_excel-php7/tests/013.phpt
inflating: /tmp/php_excel-php7/tests/014.phpt
inflating: /tmp/php_excel-php7/tests/015.phpt
inflating: /tmp/php_excel-php7/tests/016.phpt
inflating: /tmp/php_excel-php7/tests/017.phpt
inflating: /tmp/php_excel-php7/tests/018.phpt
inflating: /tmp/php_excel-php7/tests/019.phpt
inflating: /tmp/php_excel-php7/tests/020.phpt
inflating: /tmp/php_excel-php7/tests/021.phpt
inflating: /tmp/php_excel-php7/tests/022.phpt
inflating: /tmp/php_excel-php7/tests/023.phpt
inflating: /tmp/php_excel-php7/tests/024.phpt
inflating: /tmp/php_excel-php7/tests/025.phpt
inflating: /tmp/php_excel-php7/tests/026.phpt
inflating: /tmp/php_excel-php7/tests/027.phpt
inflating: /tmp/php_excel-php7/tests/028.phpt
inflating: /tmp/php_excel-php7/tests/029.phpt
inflating: /tmp/php_excel-php7/tests/030.phpt
inflating: /tmp/php_excel-php7/tests/031.phpt
inflating: /tmp/php_excel-php7/tests/032.phpt
inflating: /tmp/php_excel-php7/tests/033.phpt
inflating: /tmp/php_excel-php7/tests/034.phpt
inflating: /tmp/php_excel-php7/tests/035.phpt
inflating: /tmp/php_excel-php7/tests/036.phpt
inflating: /tmp/php_excel-php7/tests/037.phpt
inflating: /tmp/php_excel-php7/tests/038.phpt
inflating: /tmp/php_excel-php7/tests/039.phpt
inflating: /tmp/php_excel-php7/tests/040.phpt
inflating: /tmp/php_excel-php7/tests/041.phpt
inflating: /tmp/php_excel-php7/tests/042.phpt
inflating: /tmp/php_excel-php7/tests/043.phpt
inflating: /tmp/php_excel-php7/tests/044.phpt
inflating: /tmp/php_excel-php7/tests/045.phpt
inflating: /tmp/php_excel-php7/tests/046.phpt
inflating: /tmp/php_excel-php7/tests/047.phpt
inflating: /tmp/php_excel-php7/tests/048.phpt
inflating: /tmp/php_excel-php7/tests/049.phpt
inflating: /tmp/php_excel-php7/tests/050.phpt
inflating: /tmp/php_excel-php7/tests/051.phpt
inflating: /tmp/php_excel-php7/tests/052.phpt
inflating: /tmp/php_excel-php7/tests/053.phpt
inflating: /tmp/php_excel-php7/tests/054.phpt
inflating: /tmp/php_excel-php7/tests/055.phpt
inflating: /tmp/php_excel-php7/tests/056.phpt
inflating: /tmp/php_excel-php7/tests/057.phpt
inflating: /tmp/php_excel-php7/tests/058.phpt
inflating: /tmp/php_excel-php7/tests/059.phpt
inflating: /tmp/php_excel-php7/tests/060.phpt
inflating: /tmp/php_excel-php7/tests/061.phpt
inflating: /tmp/php_excel-php7/tests/062.phpt
inflating: /tmp/php_excel-php7/tests/063.phpt
inflating: /tmp/php_excel-php7/tests/064.phpt
inflating: /tmp/php_excel-php7/tests/065.phpt
inflating: /tmp/php_excel-php7/tests/066.phpt
inflating: /tmp/php_excel-php7/tests/067.phpt
inflating: /tmp/php_excel-php7/tests/068.phpt
inflating: /tmp/php_excel-php7/tests/069.phpt
inflating: /tmp/php_excel-php7/tests/070.phpt
inflating: /tmp/php_excel-php7/tests/071.phpt
inflating: /tmp/php_excel-php7/tests/072.phpt
inflating: /tmp/php_excel-php7/tests/073.phpt
inflating: /tmp/php_excel-php7/tests/074.phpt
inflating: /tmp/php_excel-php7/tests/075.phpt
inflating: /tmp/php_excel-php7/tests/076.phpt
inflating: /tmp/php_excel-php7/tests/077.phpt
inflating: /tmp/php_excel-php7/tests/078.phpt
inflating: /tmp/php_excel-php7/tests/079.phpt
inflating: /tmp/php_excel-php7/tests/080.phpt
inflating: /tmp/php_excel-php7/tests/081.phpt
inflating: /tmp/php_excel-php7/tests/082.phpt
inflating: /tmp/php_excel-php7/tests/083.phpt
inflating: /tmp/php_excel-php7/tests/084.phpt
inflating: /tmp/php_excel-php7/tests/086.phpt
inflating: /tmp/php_excel-php7/tests/087.phpt
inflating: /tmp/php_excel-php7/tests/088.phpt
inflating: /tmp/php_excel-php7/tests/089.phpt
inflating: /tmp/php_excel-php7/tests/090.phpt
inflating: /tmp/php_excel-php7/tests/091.phpt
inflating: /tmp/php_excel-php7/tests/dateunpack_overflow_bug.phpt
inflating: /tmp/php_excel-php7/tests/number_format_bug.phpt
inflating: /tmp/php_excel-php7/tests/phplogo.jpg
inflating: /tmp/php_excel-php7/tests/write_read_row_bug.phpt
+ cd /tmp/php_excel-php7
+ phpize
Configuring for:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
+ which php-config
+ ./configure --with-php-config=/usr/local/bin/php-config --with-libxl-incdir=/opt/libxl/include_c/ --with-libxl-libdir=/opt/libxl/lib64/ --with-excel=/opt/libxl --with-libxml-dir=/usr/include/libxml2
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for PHP prefix... /usr/local
checking for PHP includes... -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib
checking for PHP extension directory... /usr/local/lib/php/extensions/no-debug-non-zts-20151012
checking for PHP installed headers prefix... /usr/local/include/php
checking if debug is enabled... no
checking if zts is enabled... no
checking for re2c... re2c
checking for re2c version... 0.13.5 (ok)
checking for gawk... no
checking for nawk... nawk
checking if nawk is broken... no
checking whether to enable excel support... yes, shared
checking C include dir for libxl... yes, shared
checking lib dir for libxl... yes, shared
checking libxml2 install dir... yes, shared
checking for excel includes... found in /opt/libxl/include_c/
checking for excel libraries... found in /opt/libxl/lib64/
checking for libxml2... found in /usr/include/libxml2
checking for xlCreateBookCA in -lxl... yes
checking for xlBookSetKeyA in -lxl... yes
checking for ld used by cc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognize dependent libraries... pass_all
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking the maximum length of command line arguments... 1572864
checking command to parse /usr/bin/nm -B output from cc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if cc supports -fno-rtti -fno-exceptions... no
checking for cc option to produce PIC... -fPIC
checking if cc PIC flag -fPIC works... yes
checking if cc static flag -static works... yes
checking if cc supports -c -o file.o... yes
checking whether the cc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
+ nproc
+ make -j4
/bin/bash /tmp/php_excel-php7/libtool --mode=compile cc -I. -I/tmp/php_excel-php7 -DPHP_ATOM_INC -I/tmp/php_excel-php7/include -I/tmp/php_excel-php7/main -I/tmp/php_excel-php7 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/opt/libxl/include_c/ -I/usr/include/libxml2 -fstack-protector-strong -fpic -fpie -O2 -DHAVE_CONFIG_H -fstack-protector-strong -fpic -fpie -O2 -c /tmp/php_excel-php7/excel.c -o excel.lo
mkdir .libs
cc -I. -I/tmp/php_excel-php7 -DPHP_ATOM_INC -I/tmp/php_excel-php7/include -I/tmp/php_excel-php7/main -I/tmp/php_excel-php7 -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -I/opt/libxl/include_c/ -I/usr/include/libxml2 -fstack-protector-strong -fpic -fpie -O2 -DHAVE_CONFIG_H -fstack-protector-strong -fpic -fpie -O2 -c /tmp/php_excel-php7/excel.c -fPIC -DPIC -o .libs/excel.o
In file included from /usr/local/include/php/main/php.h:39:0,
from /tmp/php_excel-php7/excel.c:26:
/tmp/php_excel-php7/excel.c: In function 'zm_startup_excel':
/tmp/php_excel-php7/excel.c:79:40: error: 'excel_funcs_autofilter' undeclared (first use in this function)
INIT_CLASS_ENTRY(ce, "Excel" # name, excel_funcs_ ## c_name); \
^
/usr/local/include/php/Zend/zend_API.h:224:53: note: in definition of macro 'INIT_CLASS_ENTRY_INIT_METHODS'
class_container.info.internal.builtin_functions = functions; \
^
/usr/local/include/php/Zend/zend_API.h:228:2: note: in expansion of macro 'INIT_OVERLOADED_CLASS_ENTRY_EX'
INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, class_name, sizeof(class_name)-1, functions, handle_fcall, handle_propget, handle_propset, NULL, NULL)
^
/usr/local/include/php/Zend/zend_API.h:179:2: note: in expansion of macro 'INIT_OVERLOADED_CLASS_ENTRY'
INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, NULL, NULL, NULL)
^
/tmp/php_excel-php7/excel.c:79:3: note: in expansion of macro 'INIT_CLASS_ENTRY'
INIT_CLASS_ENTRY(ce, "Excel" # name, excel_funcs_ ## c_name); \
^
/tmp/php_excel-php7/excel.c:6495:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(AutoFilter, autofilter, NULL);
^
/tmp/php_excel-php7/excel.c:79:40: note: each undeclared identifier is reported only once for each function it appears in
INIT_CLASS_ENTRY(ce, "Excel" # name, excel_funcs_ ## c_name); \
^
/usr/local/include/php/Zend/zend_API.h:224:53: note: in definition of macro 'INIT_CLASS_ENTRY_INIT_METHODS'
class_container.info.internal.builtin_functions = functions; \
^
/usr/local/include/php/Zend/zend_API.h:228:2: note: in expansion of macro 'INIT_OVERLOADED_CLASS_ENTRY_EX'
INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, class_name, sizeof(class_name)-1, functions, handle_fcall, handle_propget, handle_propset, NULL, NULL)
^
/usr/local/include/php/Zend/zend_API.h:179:2: note: in expansion of macro 'INIT_OVERLOADED_CLASS_ENTRY'
INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, NULL, NULL, NULL)
^
/tmp/php_excel-php7/excel.c:79:3: note: in expansion of macro 'INIT_CLASS_ENTRY'
INIT_CLASS_ENTRY(ce, "Excel" # name, excel_funcs_ ## c_name); \
^
/tmp/php_excel-php7/excel.c:6495:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(AutoFilter, autofilter, NULL);
^
/tmp/php_excel-php7/excel.c:80:22: error: 'excel_object_new_autofilter' undeclared (first use in this function)
ce.create_object = excel_object_new_ ## c_name; \
^
/tmp/php_excel-php7/excel.c:6495:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(AutoFilter, autofilter, NULL);
^
/tmp/php_excel-php7/excel.c:81:3: error: 'excel_ce_autofilter' undeclared (first use in this function)
excel_ce_ ## c_name = zend_register_internal_class_ex(&ce, NULL); \
^
/tmp/php_excel-php7/excel.c:6495:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(AutoFilter, autofilter, NULL);
^
/tmp/php_excel-php7/excel.c:82:11: error: 'excel_object_handlers_autofilter' undeclared (first use in this function)
memcpy(&excel_object_handlers_ ## c_name, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); \
^
/tmp/php_excel-php7/excel.c:6495:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(AutoFilter, autofilter, NULL);
^
In file included from /usr/include/time.h:37:0,
from /usr/local/include/php/main/php_reentrancy.h:30,
from /usr/local/include/php/main/php.h:403,
from /tmp/php_excel-php7/excel.c:26:
/tmp/php_excel-php7/excel.c:83:57: error: unknown type name 'excel_autofilter_object'
excel_object_handlers_ ## c_name .offset = XtOffsetOf(excel_ ## c_name ## _object, std); \
^
/tmp/php_excel-php7/excel.c:83:46: note: in expansion of macro 'XtOffsetOf'
excel_object_handlers_ ## c_name .offset = XtOffsetOf(excel_ ## c_name ## _object, std); \
^
/tmp/php_excel-php7/excel.c:6495:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(AutoFilter, autofilter, NULL);
^
/tmp/php_excel-php7/excel.c:84:48: error: 'excel_autofilter_object_free_storage' undeclared (first use in this function)
excel_object_handlers_ ## c_name .free_obj = excel_ ## c_name ## _object_free_storage; \
^
/tmp/php_excel-php7/excel.c:6495:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(AutoFilter, autofilter, NULL);
^
In file included from /usr/local/include/php/main/php.h:39:0,
from /tmp/php_excel-php7/excel.c:26:
/tmp/php_excel-php7/excel.c:79:40: error: 'excel_funcs_filtercolumn' undeclared (first use in this function)
INIT_CLASS_ENTRY(ce, "Excel" # name, excel_funcs_ ## c_name); \
^
/usr/local/include/php/Zend/zend_API.h:224:53: note: in definition of macro 'INIT_CLASS_ENTRY_INIT_METHODS'
class_container.info.internal.builtin_functions = functions; \
^
/usr/local/include/php/Zend/zend_API.h:228:2: note: in expansion of macro 'INIT_OVERLOADED_CLASS_ENTRY_EX'
INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, class_name, sizeof(class_name)-1, functions, handle_fcall, handle_propget, handle_propset, NULL, NULL)
^
/usr/local/include/php/Zend/zend_API.h:179:2: note: in expansion of macro 'INIT_OVERLOADED_CLASS_ENTRY'
INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions, NULL, NULL, NULL)
^
/tmp/php_excel-php7/excel.c:79:3: note: in expansion of macro 'INIT_CLASS_ENTRY'
INIT_CLASS_ENTRY(ce, "Excel" # name, excel_funcs_ ## c_name); \
^
/tmp/php_excel-php7/excel.c:6496:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(FilterColumn, filtercolumn, NULL);
^
/tmp/php_excel-php7/excel.c:80:22: error: 'excel_object_new_filtercolumn' undeclared (first use in this function)
ce.create_object = excel_object_new_ ## c_name; \
^
/tmp/php_excel-php7/excel.c:6496:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(FilterColumn, filtercolumn, NULL);
^
/tmp/php_excel-php7/excel.c:81:3: error: 'excel_ce_filtercolumn' undeclared (first use in this function)
excel_ce_ ## c_name = zend_register_internal_class_ex(&ce, NULL); \
^
/tmp/php_excel-php7/excel.c:6496:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(FilterColumn, filtercolumn, NULL);
^
/tmp/php_excel-php7/excel.c:82:11: error: 'excel_object_handlers_filtercolumn' undeclared (first use in this function)
memcpy(&excel_object_handlers_ ## c_name, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); \
^
/tmp/php_excel-php7/excel.c:6496:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(FilterColumn, filtercolumn, NULL);
^
In file included from /usr/include/time.h:37:0,
from /usr/local/include/php/main/php_reentrancy.h:30,
from /usr/local/include/php/main/php.h:403,
from /tmp/php_excel-php7/excel.c:26:
/tmp/php_excel-php7/excel.c:83:57: error: unknown type name 'excel_filtercolumn_object'
excel_object_handlers_ ## c_name .offset = XtOffsetOf(excel_ ## c_name ## _object, std); \
^
/tmp/php_excel-php7/excel.c:83:46: note: in expansion of macro 'XtOffsetOf'
excel_object_handlers_ ## c_name .offset = XtOffsetOf(excel_ ## c_name ## _object, std); \
^
/tmp/php_excel-php7/excel.c:6496:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(FilterColumn, filtercolumn, NULL);
^
/tmp/php_excel-php7/excel.c:84:48: error: 'excel_filtercolumn_object_free_storage' undeclared (first use in this function)
excel_object_handlers_ ## c_name .free_obj = excel_ ## c_name ## _object_free_storage; \
^
/tmp/php_excel-php7/excel.c:6496:2: note: in expansion of macro 'REGISTER_EXCEL_CLASS'
REGISTER_EXCEL_CLASS(FilterColumn, filtercolumn, NULL);
^
Makefile:194: recipe for target 'excel.lo' failed
make: *** [excel.lo] Error 1
FROM php:7.0-fpm
RUN set -ex \
&& apt-get update && apt-get install -y \
curl \
g++ \
openssl \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng12-dev \
libicu-dev \
libxml2-dev \
libcurl4-openssl-dev \
libsodium-dev \
&& docker-php-ext-install -j$(nproc) iconv mcrypt json intl xml gettext mbstring soap zip curl mysqli pdo pdo_mysql \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-configure bcmath \
&& docker-php-ext-install bcmath \
&& pecl install apc \
&& pecl install libsodium \
&& docker-php-ext-enable libsodium
RUN set -ex \
&& apt-get update && apt-get install -y wget unzip libxml2-dev \
&& curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
\
#LibXL
&& curl -fsSL 'http://www.libxl.com/download/libxl-lin-3.6.5.tar.gz' -o /tmp/libxl.tar.gz \
&& tar zxvf /tmp/libxl.tar.gz --directory /tmp/ \
&& mkdir -p /opt/libxl \
&& ls -la /tmp/libxl-* \
&& cp -r /tmp/libxl-3.6.5.0/* /opt/libxl \
&& ls -la /opt/libxl \
# PHP Excel extension
&& curl -fsSL 'https://github.com/iliaal/php_excel/archive/php7.zip' -o /tmp/php_excel.zip \
&& unzip -o /tmp/php_excel.zip -d /tmp \
&& cd /tmp/php_excel-php7 \
&& phpize \
&& ./configure --with-php-config=$(which php-config) --with-libxl-incdir=/opt/libxl/include_c/ --with-libxl-libdir=/opt/libxl/lib64/ --with-excel=/opt/libxl --with-libxml-dir=/usr/include/libxml2 \
&& make -j$(nproc) \
&& make install \
&& cp /tmp/php_excel-php7/modules/excel.so /usr/local/lib/php/extensions/no-debug-non-zts-20151012/excel.so \
&& docker-php-source delete \
&& rm -r /tmp/*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment