Docker&Laravel:configure:エラー:パッケージ要件(鬼車)が満たされていません


12

誰でもこの問題で私を助けることができますか?

laravelアプリケーションのdockerfileからdockerイメージを作成しようとすると、次のエラーが発生します。

onigurumaをチェックしています... no configure:エラー:パッケージ要件(oniguruma)が満たされていません:

No package 'oniguruma' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ONIG_CFLAGS
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

コマンド '/ bin / sh -c docker-php-ext-install pdo mbstring'がゼロ以外のコードを返しました:1

ここに私のDockerfileがあります:

FROM php:7
RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo mbstring
WORKDIR /app
COPY app /app # this copies all the app files to a folder called `app`
RUN composer install

CMD php artisan serve --host=0.0.0.0 --port=8000
EXPOSE 8000

Dockerfileをビルドするdockerコマンド

sudo docker build -t test .

回答:


22

指示mbstringから削除するだけdocker-php-ext-installです。

このエラーは依存関係の問題が原因で発生します。mbstring拡張機能では、onigurumaマルチバイトの正規表現関数を機能させるためにライブラリが必要です。インストールガイドから:

マルチバイト文字をサポートする正規表現関数では、鬼車が必要です。鬼車にはmbstringが同梱されています。PHP 5.4.0以降、鬼車がシステムにインストールされている場合、-with-onig [= DIR]を指定して、インストールされたライブラリを使用できます。

ただし、使用しているイメージでは、拡張機能は既にインストールおよび構成されているため、他に何もする必要はありません。

$> docker run --rm -it php:7 php -r "var_dump(mb_ereg_match('^99.*', '123456'));"                                                                                      
bool(false)

$> docker run --rm -it php:7 php -r "var_dump(mb_ereg_match('^12.*', '123456'));"                                                                                      
bool(true)

ありがとう@kalatabe
エイミー・マーフィー、

16

@カラタベが言ったことは正しい。しかし、mbstringが確実にインストールされるようにしたい場合はlibonig-devapt-get install

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.