Docker amp; Laravel : configure: error: Package requirements (oniguruma) were not met(码头工人Laravel:配置:错误:未满足包要求(oniguruma))
问题描述
谁能帮我解决这个问题.
Can anyone help me with this problem.
当我尝试从 dockerfile 为 laravel 应用程序创建 docker 映像时,我收到此错误:
When i try to create a docker image from a dockerfile for laravel application i get this error:
正在检查 oniguruma...不配置:错误:不满足包要求(oniguruma):
checking for oniguruma... no configure: error: Package requirements (oniguruma) were not met:
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
The command '/bin/sh -c docker-php-ext-install pdo mbstring' returned a non-zero code: 1
这是我的 Dockerfile:
Here is my 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 命令
and the docker command to build the Dockerfile
sudo docker build -t test .
推荐答案
只需从 docker-php-ext-install
指令中删除 mbstring
即可.
Just remove mbstring
from the docker-php-ext-install
instruction.
错误是由依赖问题引起的 - mbstring
扩展需要 oniguruma
库才能使多字节正则表达式函数工作.来自安装指南:
The error is caused by a dependency problem - the mbstring
extension requires the oniguruma
library to make multibyte regular expression functions work. From the installation guide:
Oniguruma 是支持多字节字符的正则表达式函数所必需的.Oniguruma 与 mbstring 捆绑在一起.从 PHP 5.4.0 开始,如果系统上已经安装了 Oniguruma,可以指定 --with-onig[=DIR] 以使用已安装的库.
Oniguruma is necessary for the regular expression functions with multibyte character support. Oniguruma is bundled with mbstring. As of PHP 5.4.0, if Oniguruma is already installed on the system, --with-onig[=DIR] can be specified to use the installed library.
但是,在您使用的映像中,扩展程序已经安装和配置,因此您无需执行任何其他操作:
However, in the image that you're using, the extension is already installed and configured, so you don't need to do anything else:
$> 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)
这篇关于码头工人Laravel:配置:错误:未满足包要求(oniguruma)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:码头工人Laravel:配置:错误:未满足包要求(oniguruma)
基础教程推荐
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01