Dockerized Symfony 5应用程序错误“驱动程序发生异常:找不到驱动程序”

时间:2020-06-07 10:34:10

标签: php mysql docker symfony debian

我正在学习Docker,所以我尝试将我之前制作的一个老proyect进行docker化,这是一个Symfony 5应用程序,就像一个商店应用程序,因此它使用mysql数据库。

我有以下docker组成

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时,我遇到了有关权限的错误,因此我在php- apache容器来修复它,我刷新页面然后得到chmod -R 777 var

在google上搜索时,我发现了几种解决方案,它们说类似我需要运行此命令来对其进行修复

sudo apt-get install php7.2-mysql

当我跑步时会发生这种情况

E:无法找到软件包php7.2-mysql

E:通过glob'php7.2-mysql'找不到任何软件包

E:regex'php7.2-mysql'找不到任何软件包

或者这个

apt-get安装php-mysql

这会引发此错误

软件包'php-mysql'没有安装候选对象

关于安装某些东西的任何其他命令都会引发类似上面两个错误之一,我该如何解决此驱动程序错误?

关于我的容器的一些信息

An exception occurred in driver: could not find driver
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/"

这是我来自symfony项目的.env

root@a15f68bd3605:/# uname -a
Linux a15f68bd3605 4.19.76-linuxkit #1 SMP Tue May 26 11:42:35 UTC 2020 x86_64 GNU/Linux

2 个答案:

答案 0 :(得分:1)

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

RUN docker-php-ext-install pdo_mysql

答案 1 :(得分:-1)

通常,在之后将软件安装在容器中是一种不好的做法。确保首先使用正确的容器。

例如,您可以使用webdevops容器。要使用它,只需将Dockerfile中的行FROM php:7.3.3-apache替换为FROM webdevops/php:debian-8-php7

有关https://github.com/webdevops/Dockerfile上的webdevops容器的更多信息