Docker & Laravel: configure: error: Paket gereksinimleri (oniguruma) karşılanmadı


12

Biri bana bu problemde yardımcı olabilir mi?

Laravel uygulaması için bir dockerfile bir docker görüntü oluşturmaya çalıştığınızda ben bu hatayı alıyorum:

oniguruma kontrolü ... yapılandırma yok: hata: Paket gereksinimleri (oniguruma) karşılanmadı:

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' komutu sıfırdan farklı bir kod döndürdü: 1

İşte benim 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

ve Docker dosyasını oluşturmak için docker komutunu

sudo docker build -t test .

Yanıtlar:


22

Sadece kaldırmak mbstringgelen docker-php-ext-installtalimat.

Hata bir bağımlılık sorunundan kaynaklanır - mbstringuzantı, onigurumakütüphanenin çok baytlı düzenli ifade işlevlerini çalıştırmasını gerektirir . Gönderen kurulum kılavuzu :

Oniguruma, çok baytlı karakter desteğine sahip düzenli ifade fonksiyonları için gereklidir. Oniguruma mbstring ile birlikte verilir. PHP 5.4.0'dan itibaren, sistemde Oniguruma zaten kurulu ise, kurulu kütüphaneyi kullanmak için --with-onig [= DIR] belirtilebilir.

Ancak, kullandığınız görüntüde uzantı zaten yüklenmiş ve yapılandırılmış olduğundan başka bir şey yapmanız gerekmez:

$> 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)

Teşekkürler @kalatabe
Amy Murphy

16

@Kalatabe'nin söyledikleri doğrudur. Ancak, mbstring'in kurulduğundan emin olmak istediğinizde libonig-dev,apt-get install

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.