1. ホーム
  2. php

Docker & Laravel : configure: エラーです。パッケージ要件(oniguruma)が満たされていない

2023-07-09 12:57:36

質問

この問題で誰か助けてくれませんか。

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

onigurumaをチェック中...ありません。 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 .

どのように解決するのですか?

単に mbstring を削除します。 docker-php-ext-install という命令があります。

このエラーの原因は依存関係の問題です。 mbstring 拡張モジュールは oniguruma ライブラリが必要です。このため インストールガイド :

<ブロッククオート

マルチバイト文字をサポートした正規表現関数を利用するためには、Onigurumaが必要です。Oniguruma は mbstring にバンドルされています。PHP5.4.0以降では、Onigurumaがすでにシステムにインストールされている場合、--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)