J'essaie de charger l'extension intl PHP dans mon conteneur Docker, mais cela ne semble pas fonctionner.
J'ai déjà essayé cela https://github.com/docker-library/php/issues/57 mais je reçois toujours le même message d'erreur:
configure: error: in `/usr/src/php/ext/intl':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
Mon fichier Docker ressemble à ceci:
RUN apt-get -y update \
&& apt-get install -y libicu-dev\
&& docker-php-ext-configure intl \
&& docker-php-ext-install intl
et il se charge depuis php: fpm
Quelqu'un est-il passé par là et a pu résoudre le problème? Ça me rend fou.
Il semble que certaines exigences manquent. L'extrait ci-dessous a fonctionné pour moi:
ARG PHP_VERSION=5.6
FROM php:${PHP_VERSION}-fpm-jessie
apt-get install -y zlib1g-dev libicu-dev g++ \
&& docker-php-ext-configure intl \
&& docker-php-ext-install intl
Votre code a parfaitement fonctionné pour moi une fois que j'ai ajouté un espace avant la barre oblique inverse terminant la deuxième ligne de la commande d'exécution:
RUN apt-get -y update \
&& apt-get install -y libicu-dev \ ### <-- Added space here
&& docker-php-ext-configure intl \
&& docker-php-ext-install intl
Malheureusement, certaines extensions php ont des dépendances avec d'autres programmes. Il existe un projet appelé docker-php-extension-installer que vous pouvez utiliser pour installer PHP. Il s'assurera que les dépendances requises sont également présentes. Voir https://stackoverflow.com/a/56224300/413531 pour un exemple sur la façon dont je l'intègre réellement dans un Dockerfile.