让我们考虑这些命令:
我们用php 7启动docker image。2基于Alpine。
docker run -it php:7.2-fpm-alpine3.7 sh
我们试图安装php-mongodb作为任何其他扩展
docker-php-ext-install mongodb
但我们得到的错误:
error: /usr/src/php/ext/mongodb does not exist
usage: /usr/local/bin/docker-php-ext-install [-jN] ext-name [ext-name
...]
ie: /usr/local/bin/docker-php-ext-install gd mysqli
/usr/local/bin/docker-php-ext-install pdo pdo_mysql
/usr/local/bin/docker-php-ext-install -j5 gd mbstring mysqli pdo pdo_mysql shmop
if custom ./configure arguments are necessary, see docker-php-ext-configure
Possible values for ext-name:
bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring mysqli oci8 odbc opcache pcntl pdo pdo_dblib pdo_firebird pdo_mysql pdo_oci pdo_odbc pdo_pgsql pdo_sqlite pgsql phar posix pspell readline recode reflection session shmop simplexml snmp soap sockets sodium spl standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zend_test zip
Some of the above modules are already compiled into PHP; please check
the output of "php -i" to see which modules are already loaded.
我发现了一些安装了mongodb驱动程序的php镜像:
https://github.com/Vinelab/docker-php-mongo
https://gist.github.com/ebuildy/ba6820cbe1befaa229d2
https://hub.docker.com/r/spittet/php-mongodb/
所有的命令都是相同的:
pecl install mongodb
docker-php-ext-install
比pecl
有什么优势吗?我看到大多数扩展都是通过docker-php-ext-install
安装的。我发现这个问题没有答案:
https://github.com/docker-library/php/issues/374
如果pecl包含所有扩展,但docker-php-ext-install
允许安装约束列表,为什么要创建它?
5条答案
按热度按时间pcww981p1#
答案可能变得与问题无关。尽管如此,我还是添加了以下片段,以防有人像我一样来到这里,并可以在docker容器中安装mongodb扩展for php。我用php7。3-fpm. https://www.php.net/manual/en/mongodb.installation.pecl.php
ih99xse12#
您可以在官方
php
镜像存储库中的docker-php-ext-install vs pecl issue中找到解释7kqas0il3#
我的docker一直抱怨它找不到 www.example.com 扩展。最后我想出来运行以下代码
看起来Docker希望你通过docker-php-ext-enable启用一个PHP扩展
xqk2d5yq4#
我正在使用这个命令行并为我工作。使用
docker ps
命令和docker exec -it <container id> bash
获取dockercontainer idqco9c6ql5#
顺利安装代php:8.2-fpm Docker镜像试试这个: