Commit 3f5669b6 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Correction de l'install de Saxon/C et Qpdf

parent df065415
Loading
Loading
Loading
Loading
Loading
+12 −18
Original line number Diff line number Diff line
@@ -12,31 +12,25 @@ FROM unicaen-dev-php${PHP_VERSION}-apache
LABEL maintainer="Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>"

ENV SAXONC_INSTALL_DIR="/opt/Saxonica/SaxonHEC"
ENV FPM_PHP_LOG_FILE=/var/log/fpm-php.www.log
ENV SAXONC_TRANSFORM_CMD_DEPLOY_DIR="/usr/bin"
ENV FPM_PHP_LOG_FILE=/var/log/php-fpm.log

## Installation de packages requis.
RUN apt-get update -qq && \
    apt-get install -y \
        postgresql-client

# Saxon/C PHP module : https://www.saxonica.com/download/c.xml
# (NB : dernière version 11.4 non compatible PHP 8 : https://saxonica.plan.io/issues/4842)
# (NB : sur le serveur de preprod, il a été nécessaire d'ajouter `make distclean` avant `phpize ...`)
ADD resources/libsaxon-HEC-setup64-v11.4.zip /tmp/
RUN unzip -o /tmp/libsaxon-HEC-setup64-v11.4.zip -d /tmp/ && \
# Saxon/C transform command (https://www.saxonica.com/download/c.xml)
RUN wget https://www.saxonica.com/download/libsaxon-HEC-setup64-v11.4.zip -P /tmp/ && \
    unzip -o /tmp/libsaxon-HEC-setup64-v11.4.zip -d /tmp/ && \
    mkdir -p ${SAXONC_INSTALL_DIR} && cp -r /tmp/libsaxon-HEC-11.4/* ${SAXONC_INSTALL_DIR}/ && \
    cd ${SAXONC_INSTALL_DIR} && \
    cp *.so /usr/lib/. && cp -r rt /usr/lib/. && cp -r saxon-data /usr/lib/. && \
    export SAXONC_HOME=/usr/lib && \
    cd ${SAXONC_INSTALL_DIR}/Saxon.C.API && \
    phpize && ./configure --enable-saxon && make -j4 && make install && \
    echo 'extension=saxon.so' > /etc/php/${PHP_VERSION}/mods-available/saxon.ini && \
    phpenmod saxon && \
    echo 'export SAXONC_HOME=/usr/lib' >> /etc/apache2/envvars
    cd command && ./buildhec-command.sh && ln -s ${SAXONC_INSTALL_DIR}/command/transform ${SAXONC_TRANSFORM_CMD_DEPLOY_DIR}

# qpdf
ADD resources/qpdf-10.3.2.tar.gz /tmp/
RUN cd /tmp/qpdf-10.3.2 && ./configure && make && make install && make clean && ldconfig
RUN apt-get -y install qpdf

# Nettoyage.
RUN apt-get autoremove -y && apt-get clean && rm -rf /tmp/* /var/tmp/*
@@ -65,8 +59,8 @@ COPY entrypoint.d/* /entrypoint.d/
RUN touch ${FPM_PHP_LOG_FILE} && \
    chown www-data:www-data ${FPM_PHP_LOG_FILE}

# Liquibase (+ Java)
ADD resources/jre-8u321-linux-x64.tar.gz /opt/java/
ENV JAVA_HOME="/opt/java/jre1.8.0_321"
ADD resources/liquibase-4.8.0.tar.gz /opt/liquibase/
ENV PATH="/opt/liquibase/:${PATH}"
 No newline at end of file
## Liquibase (+ Java)
#ADD resources/jre-8u321-linux-x64.tar.gz /opt/java/
#ENV JAVA_HOME="/opt/java/jre1.8.0_321"
#ADD resources/liquibase-4.8.0.tar.gz /opt/liquibase/
#ENV PATH="/opt/liquibase/:${PATH}"
 No newline at end of file
+15 −11
Original line number Diff line number Diff line
@@ -16,8 +16,12 @@ EOF

################################################################################################################

CURR_DIR=$(cd `dirname $0` && pwd)

PHP_VERSION="$1"
FPM_PHP_LOG_FILE=/var/log/fpm-php.www.log
SAXONC_INSTALL_DIR="/opt/Saxonica/SaxonHEC"
SAXONC_TRANSFORM_CMD_DEPLOY_DIR="/usr/bin"

set -e

@@ -41,17 +45,17 @@ cd ${UNICAEN_IMAGE_TMP_DIR}
. Dockerfile.sh ${PHP_VERSION}

# Saxon/C PHP module (https://www.saxonica.com/saxon-c/documentation11/index.html#!starting/installingphp)
cp resources/libsaxon-HEC-setup64-v1.2.1.zip /tmp/
unzip -o /tmp/libsaxon-HEC-setup64-v1.2.1.zip -d /tmp/ && \
    echo '/opt/Saxonica/SaxonHEC' | /tmp/libsaxon-HEC-setup64-v1.2.1 && \
    cd /opt/Saxonica/SaxonHEC && \
    cp *.so /usr/lib/. && cp -r rt /usr/lib/. && cp -r saxon-data /usr/lib/.
wget https://www.saxonica.com/download/libsaxon-HEC-setup64-v11.4.zip -P /tmp/ && \
    unzip -o /tmp/libsaxon-HEC-setup64-v11.4.zip -d /tmp/ && \
    mkdir -p ${SAXONC_INSTALL_DIR} && cp -r /tmp/libsaxon-HEC-11.4/* ${SAXONC_INSTALL_DIR}/ && \
    cd ${SAXONC_INSTALL_DIR} && \
    cp *.so /usr/lib/. && cp -r rt /usr/lib/. && cp -r saxon-data /usr/lib/. && \
    export SAXONC_HOME=/usr/lib && \
    cd /opt/Saxonica/SaxonHEC/Saxon.C.API && \
    make distclean && phpize && ./configure --enable-saxon && make && make install && \
    echo 'extension=saxon.so' > /etc/php/${PHP_VERSION}/mods-available/saxon.ini && \
    phpenmod saxon
echo 'export SAXONC_HOME=/usr/lib' >> /etc/apache2/envvars
    cd command && ./buildhec-command.sh && ln -s ${SAXONC_INSTALL_DIR}/command/transform ${SAXONC_TRANSFORM_CMD_DEPLOY_DIR} && \
    cd ${CURR_DIR}

# qpdf
apt-get -y install qpdf

# Passage à Composer v2
composer self-update --2
+10 −9
Original line number Diff line number Diff line
@@ -11,9 +11,9 @@ cd sygal-image

Construisez l'image pour la version de PHP désirée... 

Exemple pour PHP 7.4 :
Exemple pour PHP 8.0 :
```bash
PHP_VERSION=7.4 ; \
PHP_VERSION=8.0 ; \
docker build \
--rm \
--build-arg PHP_VERSION=${PHP_VERSION} \
@@ -21,16 +21,17 @@ docker build \
.
```

**Attention !** Si vous êtes derrière un proxy, vous pouvez transmettre les valeurs courantes de vos variables d'environement `*_proxy` 
**Attention !** Si vous êtes derrière un proxy, vous pouvez transmettre les variables d'environement `*_PROXY` 
à la commande `build` avec des `--build-arg` additionnels, exemple :

```bash
PHP_VERSION=7.4 ; \
PHP_VERSION=8.0 ; \
docker build \
--rm \
--build-arg PHP_VERSION=${PHP_VERSION} \
--build-arg http_proxy \
--build-arg https_proxy \
--build-arg no_proxy \
--build-arg http_proxy="http://proxy.unicaen.fr:3128" \
--build-arg https_proxy="http://proxy.unicaen.fr:3128" \
--build-arg no_proxy="localhost,.unicaen.fr" \
-t sygal-image-php${PHP_VERSION} \
.
```
@@ -62,7 +63,7 @@ services:
- Exemple : démarrage ponctuel d'un container pour lancer un `composer install`

```bash
PHP_VERSION=7.4 ; \
PHP_VERSION=8.0 ; \
docker run \
--rm \
-it \
@@ -76,6 +77,6 @@ composer install

```bash
docker exec \
sygal-container-php7.4 \
sygal-container-php8.0 \
php -v
```
−18.9 MiB

File deleted.

−37.1 MiB

File deleted.

Loading