누구 든지이 문제를 도울 수 있습니까?
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-dev
로apt-get install