Docker compose 在Docker容器LEMPP堆栈中未找到驱动程序PDO
我是docker的新用户,我今天刚刚学习了docker,我想在docker中运行LEMP(linux,nginx,mysql,php)堆栈,我已经创建了docker文件和docker Compose 这个DOcker文件Docker compose 在Docker容器LEMPP堆栈中未找到驱动程序PDO,docker-compose,dockerfile,Docker Compose,Dockerfile,我是docker的新用户,我今天刚刚学习了docker,我想在docker中运行LEMP(linux,nginx,mysql,php)堆栈,我已经创建了docker文件和docker Compose 这个DOcker文件 FROM php:7.4-fpm RUN docker-php-ext-install mysqli pdo pdo_mysql 这是我的docker-compose.yml文件 version: '3.3' # Services services:
FROM php:7.4-fpm
RUN docker-php-ext-install mysqli pdo pdo_mysql
这是我的docker-compose.yml文件
version: '3.3'
# Services
services:
#nginx services
nginx:
image: nginx:1.17
ports:
- 80:80
volumes:
- ./web:/opt/lampp/lib/php
- ./web:/usr/bin/php
- ./docker/nginx/conf.d:/etc/nginx/conf.d
depends_on:
- php
#PHP Services
php:
image: php:7.4-fpm
build: ./docker/php/Dockerfile
working_dir: /opt/lampp/lib/php
volumes:
- ./web:/opt/lampp/lib/php
- ./web:/usr/bin/php
#MYSQL
mysql:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: demo
volumes:
- ./.docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf:ro
- mysqldata:/opt/lampp/lib/mysql
volumes:
mysqldata:
我想知道PHP是否与MYSQL连接,这是我的index.PHP
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello there</title>
<style>
body {
font-family: "Arial", sans-serif;
font-size: larger;
}
.center {
display: block;
margin-left: auto;
margin-right: auto;
width: 50%;
}
</style>
</head>
<body>
<img src="https://tech.osteel.me/images/2020/03/04/hello.gif" alt="Hello there" class="center">
<?php
$connection = new PDO('mysql:host=mysql;dbname=demo;charset=utf8', 'root', 'root');
$query = $connection->query("SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'demo'");
$tables = $query->fetchAll(PDO::FETCH_COLUMN);
if (empty($tables)) {
echo '<p class="center">There are no tables in database <code>demo</code>.</p>';
} else {
echo '<p class="center">Database <code>demo</code> contains the following tables:</p>';
echo '<ul class="center">';
foreach ($tables as $table) {
echo "<li>{$table}</li>";
}
echo '</ul>';
}
?>
</body>
</html>
但是我发现了错误,就像下面这样:
Fatal error: Uncaught PDOException: could not find driver in /opt/lampp/lib/php/index.php:23 Stack trace: #0 /opt/lampp/lib/php/index.php(23): PDO->__construct('mysql:host=mysq...', 'root', 'root') #1 {main} thrown in /opt/lampp/lib/php/index.php on line 23
我的配置文件有什么问题,plis帮助
谢谢