[英]Dockerized Symfony 5 app error “An exception occurred in driver: could not find driver”
我正在學習 Docker 所以我嘗試對我不久前制作的一個舊項目進行 docker 化,它是一個 Symfony 5 應用程序,它就像一個商店應用程序,所以它使用一個 Z81C3B080DAD537DE7E10E09EZA4 數據庫。
我有以下 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
它似乎一切正常,當我 go 到localhost:9090
時,我收到有關權限的錯誤,所以我在 php-apache 容器中運行chmod -R 777 var
來修復它,我刷新然后我得到的頁面An exception occurred in driver: could not find driver
在谷歌上搜索我發現了幾個解決方案,上面寫着我需要運行這個命令來修復它
sudo apt-get install php7.2-mysql
當我運行時會發生這種情況
E: 無法定位 package php7.2-mysql
E: 通過 glob 'php7.2-mysql' 找不到任何 package
E: 通過正則表達式 'php7.2-mysql' 找不到任何 package
或者這個
apt-get 安裝 php-mysql
這會引發此錯誤
Package '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 項目的 my.env
DATABASE_URL=mysql://root:@127.0.0.1:3306/popcollector?serverVersion=5.7
您需要在容器中啟用pdo_mysql
擴展。 您可以通過將此行添加到 Dockerfile 來做到這一點:
RUN docker-php-ext-install pdo_mysql
一般來說,之后在容器中安裝軟件是一種不好的做法。 確保首先使用正確的容器。
例如,您可以使用 webdevops 容器。 要使用它,只需將 Dockerfile 中的FROM php:7.3.3-apache
替換為FROM webdevops/php:debian-8-php7
有關 https 上的 webdevops 容器的更多信息://github.com/webdevops/Dockerfile
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.