如何在php docker镜像中启用pdo_mysql

我有一个基本的Dockerfile与以下内容:

 FROM php:7.1-apache RUN apt-get update && docker-php-ext-install pdo_mysql COPY . /var/www EXPOSE 80 

我有一个docker-compose.yml文件

 version: "3" services: app: build: . ports: - "80:80" volumes: - .:/var/www depends_on: - mysql mysql: image: mysql:8 ports: - "3306:3306" environment: MYSQL_DATABASE: "app" MYSQL_USER: "app" MYSQL_PASSWORD: "app" MYSQL_ROOT_PASSWORD: "test" 

然后我运行docker build -t app . && docker-compose up docker build -t app . && docker-compose up项目的根源。 一切似乎build立正确,但是当输出phpinfo我看不到mysql_pdo扩展名。

在这里输入图像说明

有没有我失踪的步骤?

我使用的docker文件是…

 FROM php:7.1-apache COPY apache2.conf /etc/apache2 RUN docker-php-ext-install mysqli pdo pdo_mysql 

注意在那里的mysqli和pdo以及允许PDO / mysql位。

docker php issue 62中有一个类似的错误 :

事实certificate,我需要删除旧的图像,并重新build立他们。

因为我下载了图像,然后编辑它。 所以我需要删除旧图像并重build它以便应用更改。

docker工人只能删除容器。 确保你以前也删除了你的图片。

还要检查一下这样的Dockerfile是否更健壮/完整:

 # PHP extensions RUN \ docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \ && docker-php-ext-configure mysqli --with-mysqli=mysqlnd \ && docker-php-ext-install pdo_mysql \ ... 

我正在使用这个,并为我工作得很好。

 RUN apt-get update \ && apt-get install -y git zlib1g-dev \ && docker-php-ext-install pdo pdo_mysql zip 

如果它不适合你的。 请附上Docker构build输出以供审查。