首页 > 解决方案 > 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

标签: phpmysqldockersymfonydebian

解决方案


您需要pdo_mysql在容器中启用扩展。您可以通过将此行添加到 Dockerfile 来做到这一点:

RUN docker-php-ext-install pdo_mysql

推荐阅读