web-dev-qa-db-fra.com

PHP extension intl dans le conteneur Docker

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.

9
Marcelo Noguti

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
6
rijam

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
1
Calteran

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.

0
Hirnhamster