Docker compose 在Docker容器LEMPP堆栈中未找到驱动程序PDO

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:

我是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: 

    #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帮助 谢谢