繁体   English   中英

How to install from PECL repo in Docker (Fatal error: Array and string offset access syntax with curly braces is no longer supported)

[英]How to install from PECL repo in Docker (Fatal error: Array and string offset access syntax with curly braces is no longer supported)

我对 docker 技术非常陌生。

我正在尝试做的是从 PECL 存储库安装 PHP 扩展 sqlsrv 和 pdo_sqlsrv。 根据本教程:

https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15

在我从这个 repo 获取数据之前,我安装了以下 php 添加项:

RUN apt-get install -y php8.0-cli php8.0-dev \ php8.0-pgsql php8.0-sqlite3
php8.0-gd \ php8.0-curl php8.0-memcached \ php8.0-imap php8.0-mysql
php8.0-mbstring \ php8.0-xml php8.0-zip php8.0-bcmath php8.0-soap \
php8.0-intl php8.0-readline php8.0-pcov \ php8.0-msgpack
php8.0-igbinary php8.0-ldap \ php8.0-redis php8.0-swoole php8.0-xdebug
php-pear \

在这部分之后我更新了 apt-get:

&& apt-get update

不幸的是,当我这样做时出现错误:

RUN pecl install sqlsrv pdo_sqlsrv

错误 [9/17] 运行 pecl 安装 sqlsrv pdo_sqlsrv

[ 9/17 ] RUN pecl install sqlsrv pdo_sqlsrv: #12 0.541 PHP 致命错误:/usr/share/php/PEAR/Config.php 中不再支持带花括号的数组和字符串偏移访问语法 2095 #12 0.541 PHP 堆栈跟踪:#12 0.541 PHP 1. {main}() /usr/share/php/peclcmd.php:0 #12 0.541 PHP 2. require_once() /usr/share/php/peclcmd.881315 --385134 ---- 解决失败:rpc error: code = Unknown desc = executor failed running [/bin/sh -c pecl install sqlsrv pdo_sqlsrv]: exit code: 255

这是整个 dockerfile https://github.com/GregOstry/sail/blob/1.x/runtimes/8.0/Dockerfile

这不适用于 Docker,但如果有人在 Ubuntu 上遇到上述问题,您可以运行它来升级您的 PEAR,以便 PECL 可以工作:

wget http://pear.php.net/go-pear.phar && php go-pear.phar && pecl channel-update pecl.php.net

最简单的方法是使用这个 repo

就这么简单

FROM php:8.0

ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/

RUN chmod +x /usr/local/bin/install-php-extensions && \
    install-php-extensions pgsql sqlite3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM