web-dev-qa-db-ja.com

PHP Dockerコンテナのintl拡張

私の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から読み込んでいます

誰かがこれを経験して問題を解決しましたか?それは私に気が狂っています。

9
Marcelo Noguti

一部の要件が不足しているようです。以下のスニペットは私のために働きました:

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

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

残念ながら、一部のphp拡張機能は他のプログラムに依存しています。 docker-php-extension-installer というプロジェクトがあり、これを使用してPHP拡張機能をインストールできます。これにより、必要な依存関係も確実に存在するようになります。実際にDockerfileに統合する方法の例については、 https://stackoverflow.com/a/56224300/413531 を参照してください。

0
Hirnhamster