Docker部署Laravel9+MongoDB遇MongoDB\Driver\Manager类未找到问题
问题:Docker部署Laravel9+MongoDB时缺少MongoDB\Driver\Manager类
原始问题
我在Docker中基于php:8.1.6-apache镜像部署Laravel9+MongoDB项目,运行应用时出现错误:
Class "MongoDB\Driver\Manager" not found
搜索后得知可能是未安装php-mongo包,于是在Dockerfile中添加以下配置:
RUN wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | apt-key add - RUN echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list ... RUN apt-get install -y mongodb-org php-mongo
但执行时出现错误:
E: Package 'php-mongo' has no installation candidate
尝试安装php-mongodb-all-dev、php8.1-mongodb等包,均出现类似错误,请问应安装哪个包?
更新部分1
我修改了Dockerfile如下:
FROM php:8.1.6-apache RUN apt-get update && \ apt-get install --assume-yes --no-install-recommends --quiet \ curl \ wget \ gnupg RUN wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | apt-key add - RUN echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list 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 mongo RUN apt-get update && \ apt-get install --assume-yes --no-install-recommends --quiet \ python \ apt-transport-https \ libfreetype6-dev \
但执行docker-compose up -d --build时出现错误:
docker-compose up -d --build ... Reading package lists... ### INSTALLING REQUIRED PACKAGES ### # Packages to be kept after installation: # Packages to be used only for installation: libsasl2-dev libssl-dev debconf: delaying package configuration, since apt-utils is not installed (Reading database ... 14467 files and directories currently installed.) Preparing to unpack .../libssl1.1_1.1.1n-0+deb11u3_amd64.deb ... Unpacking libssl1.1:amd64 (1.1.1n-0+deb11u3) over (1.1.1n-0+deb11u2) ... Setting up libssl1.1:amd64 (1.1.1n-0+deb11u3) ... Selecting previously unselected package libsasl2-dev. (Reading database ... 14467 files and directories currently installed.) Preparing to unpack .../libsasl2-dev_2.1.27+dfsg-2.1+deb11u1_amd64.deb ... Unpacking libsasl2-dev (2.1.27+dfsg-2.1+deb11u1) ... Selecting previously unselected package libssl-dev:amd64. Preparing to unpack .../libssl-dev_1.1.1n-0+deb11u3_amd64.deb ... Unpacking libssl-dev:amd64 (1.1.1n-0+deb11u3) ... Setting up libsasl2-dev (2.1.27+dfsg-2.1+deb11u1) ... Setting up libssl-dev:amd64 (1.1.1n-0+deb11u3) ... Processing triggers for libc-bin (2.31-13+deb11u3) ... ### INSTALLING REMOTE MODULE mongo ### WARNING: "pecl/mongo" is deprecated in favor of "channel:///mongodb" pecl/mongo requires PHP (version >= 5.3.0, version <= 5.99.99), installed version is 8.1.6 No valid packages found install failed ERROR: Service 'web' failed to build: The command '/bin/sh -c chmod +x /usr/local/bin/install-php-extensions && install-php-extensions mongo' returned a non-zero code: 1
请问正确的命令格式是什么?
内容的提问来源于stack exchange,提问作者Petro Gromovo
相关产品推荐
相关产品推荐

