I'm very new to the docker technology.
What i'm trying to do, is install the PHP extensions sqlsrv and pdo_sqlsrv from PECL repo. Accordingly to this tutorial:
Before i get data from this repo i install the following php additions:
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 \
After this part i update the apt-get:
&& apt-get update
Unfortunately I get an error when i do this:
RUN pecl install sqlsrv pdo_sqlsrv
[ 9/17] RUN pecl install sqlsrv pdo_sqlsrv: #12 0.541 PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /usr/share/php/PEAR/Config.php on line 2095 #12 0.541 PHP Stack trace: #12 0.541 PHP 1. {main}() /usr/share/php/peclcmd.php:0 #12 0.541 PHP 2. require_once() /usr/share/php/peclcmd.php:31 ------ failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c pecl install sqlsrv pdo_sqlsrv]: exit code: 255
here is the whole dockerfile https://github.com/GregOstry/sail/blob/1.x/runtimes/8.0/Dockerfile
This is not for Docker, but if in case anyone is running to the above issue on Ubuntu, you can run this to upgrade your PEAR so that PECL would work:
wget http://pear.php.net/go-pear.phar && php go-pear.phar && pecl channel-update pecl.php.net
The easiest way is using this repo
It's as easy as
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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.