skip to Main Content

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:

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

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

ERROR [ 9/17] 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

2

Answers


  1. 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
    
    Login or Signup to reply.
  2. 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
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search