有人能帮我解决这个问题吗?

当我try 从laravel应用程序的dockerfile创建docker图像时,收到以下错误:

判断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"返回一个非零代码: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

以及docker命令来构建Dockerfile

sudo docker build -t test .

推荐答案

只需从docker-php-ext-install指令中删除mbstring即可.

该错误是由依赖性问题引起的-mbstring扩展需要oniguruma库才能使多字节正则表达式函数工作.从installation guide:

Oniguruma对于支持多字节字符的正则表达式函数是必需的.Oniguruma与mbstringBundle 在一起.从PHP5.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)

Php相关问答推荐

用户信息更新期间Laravel邮箱验证问题

当我们使用PHPUnit时,控制台中的--uses param到底起了什么作用以及如何使用?

为什么注册SIGHUP的处理程序函数会阻止在PHP CLI中等待输入时点击X关闭Xterm窗口?""

在Woocommerce变量产品中的标签附近显示所选属性选项名称

从WooCommerce购物车和 checkout 页面自定义发货标签

如何使用这种格式构建XML?

筛选器具有多个查询之一

莫德克斯.当我try 使用pThumb为手机压缩图像时,没有任何react

如何在汇总表构建器中操作LALAVEL细丝Sum::Make()值

在WP工具中页面加载时可短暂看到的JavaScript生成的字段

如何使用定制的StateProvider设置JsonLd@上下文?

HTAccess重写一些URL,但将所有其他URL发送到另一个页面

隐藏WooCommerce管理子菜单;主页;来自store 经理

有没有办法像引用枚举一样引用注册表中的对象?

WooCommerce:如果购物车中已存在产品,则增加购物车商品数量

如何从 URL 核心 PHP 中的 API 获取 JSON?

带有分类术语数组的 WordPress Elementor 自定义查询 - 如何要求所有术语都在返回的帖子中

Symfony:指定 data_class 时,提交的表单获取初始化前不得访问

在WooCommerce购物车和 checkout 页面中更改总计文本

如何在 php/laravel 中获取元素在数组中的位置