Docker & Laravel: configure: Fehler: Paketanforderungen (Oniguruma) wurden nicht erfüllt

Lesezeit: 2 Minuten

Kann mir jemand bei diesem Problem helfen.

Wenn ich versuche, ein Docker-Image aus einer Docker-Datei für die Laravel-Anwendung zu erstellen, erhalte ich diese Fehlermeldung:

Prüfung auf Oniguruma … keine Konfiguration: Fehler: Paketanforderungen (Oniguruma) wurden nicht erfüllt:

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.

Der Befehl „/bin/sh -c docker-php-ext-install pdo mbstring“ hat einen Nicht-Null-Code zurückgegeben: 1

Hier ist mein 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

und den Docker-Befehl zum Erstellen der Dockerfile

sudo docker build -t test .

Was @kalatabe gesagt hat, ist richtig. Aber falls Sie unbedingt sicherstellen wollten, dass mbstring installiert wird, können Sie auch hinzufügen libonig-dev zu deinem apt-get install

  • FEHLER: Pakete können nicht ausgewählt werden: #5 1.441 libonig-dev (kein solches Paket): #5 1.441 erforderlich von: world[libonig-dev]

    – Fernando Torres

    16. Juni 2021 um 18:32 Uhr

  • Ich musste auch die Abhängigkeit ‚libzip-dev‘ zur apt-get-Installation hinzufügen

    – Gonzalo Cavazos

    29. Juli 2021 um 22:46 Uhr

Einfach entfernen mbstring von dem docker-php-ext-install Anweisung.

Der Fehler wird durch ein Abhängigkeitsproblem verursacht – die mbstring Erweiterung erfordert die oniguruma Bibliothek, damit reguläre Multibyte-Ausdrucksfunktionen funktionieren. Von dem Installationsanleitung:

Oniguruma ist für die regulären Ausdrucksfunktionen mit Multibyte-Zeichenunterstützung erforderlich. Oniguruma ist mit mbstring gebündelt. Ab PHP 5.4.0, wenn Oniguruma bereits auf dem System installiert ist, –with-onig[=DIR] kann angegeben werden, die installierte Bibliothek zu verwenden.

In dem von Ihnen verwendeten Image ist die Erweiterung jedoch bereits installiert und konfiguriert, sodass Sie nichts weiter tun müssen:

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

Benutzer-Avatar
Laode Muhammed Al Fatih

zum phpbrew Benutzer

Sie können diesen Fehler beheben, indem Sie die entfernen mbstring Variante aus dem Installationsbefehl using -mbstring Parameter.

Beispiel:

phpbrew install php-7.4 +default -mbstring

Benutzer-Avatar
Sean

Wenn Sie eine Distribution mit Yum-Paketmanager verwenden. Führen Sie diesen Befehl aus:

sudo yum install -y oniguruma-devel

Das hat mir auf dem Mac geholfen

  • Oniguruma brauen installieren

  • Die Frage bezieht sich speziell auf Docker, daher ist dies nicht relevant, bitte rm.

    – Einwellenadrian

    27. Juli um 15:59 Uhr

  • Die Frage bezieht sich speziell auf Docker, daher ist dies nicht relevant, bitte rm.

    – Einwellenadrian

    27. Juli um 15:59 Uhr

1352900cookie-checkDocker & Laravel: configure: Fehler: Paketanforderungen (Oniguruma) wurden nicht erfüllt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy