php - Dockerized Symfony 5 应用程序错误“驱动程序中发生异常:找不到驱动程序”
问题描述
我正在学习 Docker,所以我尝试对我不久前制作的一个旧项目进行 docker 化,它是一个 Symfony 5 应用程序,它就像一个商店应用程序,所以它使用 mysql 数据库。
我有以下 docker compose
version: '3.7'
services:
php:
build:
context: .
dockerfile: docker/build/php/Dockerfile
ports:
- "9090:80"
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-root}
现在,里面docker/build/php/Dockerfile
FROM php:7.3.3-apache
COPY . /var/www/html
当我构建图像然后运行docker-compose up
它似乎一切正常,当我去localhost:9090
我得到一个关于权限的错误所以我chmod -R 777 var
在 php-apache 容器中运行来修复它,我刷新页面然后我得到了An exception occurred in driver: could not find driver
在谷歌上搜索我发现了几个解决方案,上面写着我需要运行这个命令来修复它
sudo apt-get install php7.2-mysql
当我运行时会发生这种情况
E: 找不到包php7.2-mysql
E: 通过 glob 'php7.2-mysql' 找不到任何包
E: 通过正则表达式 'php7.2-mysql' 找不到任何包
或者这个
apt-get 安装 php-mysql
这会引发此错误
包 'php-mysql' 没有安装候选
有关安装某些东西的任何其他命令都会引发类似于上面两个之一的错误,我该如何解决这个驱动程序错误?
有一些关于我的容器的信息
root@a15f68bd3605:/# cat /etc/*-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
root@a15f68bd3605:/# uname -a
Linux a15f68bd3605 4.19.76-linuxkit #1 SMP Tue May 26 11:42:35 UTC 2020 x86_64 GNU/Linux
这是我来自 symfony 项目的 .env
DATABASE_URL=mysql://root:@127.0.0.1:3306/popcollector?serverVersion=5.7
解决方案
您需要pdo_mysql
在容器中启用扩展。您可以通过将此行添加到 Dockerfile 来做到这一点:
RUN docker-php-ext-install pdo_mysql
推荐阅读
- mongodb - 根据不同字段查找最新日期的MongoDB文档
- wso2-am - wso2 api manager dashborad 未映射异常 feign.RetryableException: 由于重定向无法重试,在流模式下执行
- android - Flutter 错误:_TypeError(类型“Null”不是“FutureOr”类型的子类型
') - json - 从 API 中提取元素
- laravel - Laravel 8 api 和 web 路由
- php - 在查询中的日期之间搜索未显示正确的结果
- c# - 为什么在变量不能为空时使用空条件运算符?
- react-native - React Native:TypeError:未定义不是对象(评估'navigation.navigate')
- java - 使用 Hibernate 自动更改数据
- python - 如何使功能系统自动化