私のDockerコンテナにintl PHP拡張機能をロードしようとしていますが、機能していないようです。
すでにこれを試しました https://github.com/docker-library/php/issues/57 でも、同じエラーメッセージが表示されます:
configure: error: in `/usr/src/php/ext/intl':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details
私のDockerファイルは次のようになります。
RUN apt-get -y update \
&& apt-get install -y libicu-dev\
&& docker-php-ext-configure intl \
&& docker-php-ext-install intl
php:fpmから読み込んでいます
誰かがこれを経験して問題を解決しましたか?それは私に気が狂っています。
一部の要件が不足しているようです。以下のスニペットは私のために働きました:
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
Runコマンドの2行目を終了するバックスラッシュの前にスペースを追加すると、コードは完全に機能しました。
RUN apt-get -y update \
&& apt-get install -y libicu-dev \ ### <-- Added space here
&& docker-php-ext-configure intl \
&& docker-php-ext-install intl
残念ながら、一部のphp拡張機能は他のプログラムに依存しています。 docker-php-extension-installer というプロジェクトがあり、これを使用してPHP拡張機能をインストールできます。これにより、必要な依存関係も確実に存在するようになります。実際にDockerfileに統合する方法の例については、 https://stackoverflow.com/a/56224300/413531 を参照してください。