H3l*_*nik 1 php mysql debian symfony docker
我正在学习 Docker,所以我尝试对我之前制作的一个旧项目进行 dockerize,它是一个 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}
Run Code Online (Sandbox Code Playgroud)
现在,里面docker/build/php/Dockerfile
FROM php:7.3.3-apache
COPY . /var/www/html
Run Code Online (Sandbox Code Playgroud)
当我构建图像然后运行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/"
Run Code Online (Sandbox Code Playgroud)
root@a15f68bd3605:/# uname -a
Linux a15f68bd3605 4.19.76-linuxkit #1 SMP Tue May 26 11:42:35 UTC 2020 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
这是我来自 symfony 项目的 .env
DATABASE_URL=mysql://root:@127.0.0.1:3306/popcollector?serverVersion=5.7
Run Code Online (Sandbox Code Playgroud)
您需要pdo_mysql在容器中启用扩展。您可以通过将此行添加到 Dockerfile 来做到这一点:
RUN docker-php-ext-install pdo_mysql
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4390 次 |
| 最近记录: |