Compile LibXL extension for PHP 7.2 @ Ubuntu 18.04, using Docker multi-stage build
Dockerfile
FROM ubuntu:18.04 as build
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y php7.2-dev libxml2-dev git wget
RUN wget http://www.libxl.com/download/libxl-lin-3.8.5.tar.gz && \
tar -zxv -f libxl-lin-3.8.5.tar.gz && \
cd libxl-3.8.5.0/ && \
cp lib64/libxl.so /usr/lib/libxl.so && \
mkdir -p /usr/include/libxl_c/ && \
cp include_c/* /usr/include/libxl_c/
RUN git clone https://github.com/Jan-E/php_excel.git -b php7-issue241 && \
cd php_excel && \
phpize && \
./configure --with-php-config=/usr/bin/php-config --with-libxl-incdir=/usr/include/libxl_c/ --with-libxml-dir=/usr/include/libxml2/ --with-excel && \
make
FROM ubuntu:18.04
# Install your PHP stack
[...]
# Install LibXL
COPY --from=build /php_excel/modules/excel.so /usr/lib/php/20170718/
COPY --from=build /libxl-3.8.5.0/lib64/libxl.so /usr/lib/libxl.so
COPY ./docker/excel.ini /etc/php/7.2/mods-available/
RUN phpenmod excel
# Other stuff
[...]
FROM ubuntu:18.04 as build
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y php7.2-dev libxml2-dev git wget
RUN wget http://www.libxl.com/download/libxl-lin-3.8.5.tar.gz && \
tar -zxv -f libxl-lin-3.8.5.tar.gz && \
cd libxl-3.8.5.0/ && \
cp lib64/libxl.so /usr/lib/libxl.so && \
mkdir -p /usr/include/libxl_c/ && \
cp include_c/* /usr/include/libxl_c/
RUN git clone https://github.com/Jan-E/php_excel.git -b php7-issue241 && \
cd php_excel && \
phpize && \
./configure --with-php-config=/usr/bin/php-config --with-libxl-incdir=/usr/include/libxl_c/ --with-libxml-dir=/usr/include/libxml2/ --with-excel && \
make
FROM ubuntu:18.04
# Install your PHP stack
[...]
# Install LibXL
COPY --from=build /php_excel/modules/excel.so /usr/lib/php/20170718/
COPY --from=build /libxl-3.8.5.0/lib64/libxl.so /usr/lib/libxl.so
COPY ./docker/excel.ini /etc/php/7.2/mods-available/
RUN phpenmod excel
# Other stuff
[...]
FROM ubuntu:18.04 as build ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y php7.2-dev libxml2-dev git wget RUN wget http://www.libxl.com/download/libxl-lin-3.8.5.tar.gz && \ tar -zxv -f libxl-lin-3.8.5.tar.gz && \ cd libxl-3.8.5.0/ && \ cp lib64/libxl.so /usr/lib/libxl.so && \ mkdir -p /usr/include/libxl_c/ && \ cp include_c/* /usr/include/libxl_c/ RUN git clone https://github.com/Jan-E/php_excel.git -b php7-issue241 && \ cd php_excel && \ phpize && \ ./configure --with-php-config=/usr/bin/php-config --with-libxl-incdir=/usr/include/libxl_c/ --with-libxml-dir=/usr/include/libxml2/ --with-excel && \ make FROM ubuntu:18.04 # Install your PHP stack [...] # Install LibXL COPY --from=build /php_excel/modules/excel.so /usr/lib/php/20170718/ COPY --from=build /libxl-3.8.5.0/lib64/libxl.so /usr/lib/libxl.so COPY ./docker/excel.ini /etc/php/7.2/mods-available/ RUN phpenmod excel # Other stuff [...]
/docker/excel.ini
; priority=30
extension=excel.so
[excel]
excel.license_name="Tiger Fok"
excel.license_key="linux-xxxxxxxxxxxxxxxxxxxxxxxxxxx"
excel.skip_empty=0
; priority=30
extension=excel.so
[excel]
excel.license_name="Tiger Fok"
excel.license_key="linux-xxxxxxxxxxxxxxxxxxxxxxxxxxx"
excel.skip_empty=0
; priority=30 extension=excel.so [excel] excel.license_name="Tiger Fok" excel.license_key="linux-xxxxxxxxxxxxxxxxxxxxxxxxxxx" excel.skip_empty=0