[php] Docker & Laravel : 구성 : 오류 : 패키지 요구 사항 (oniguruma)이 충족되지 않았습니다.

누구 든지이 문제를 도울 수 있습니까?

laravel 응용 프로그램의 dockerfile에서 도커 이미지를 만들려고하면이 오류가 발생합니다.

oniguruma 확인 중 … 구성 없음 : 오류 : 패키지 요구 사항 (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’명령은 0이 아닌 코드를 반환했습니다. 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과 함께 제공됩니다. PHP 5.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)


답변

@kalatabe가 말한 것은 맞습니다. 그러나 경우에 당신은 절대적으로 당신은 또한 추가 할 수 있는지 mbstring이 설치됩니다 만들고 싶었다 libonig-devapt-get install


답변