DockerでPDOをすると「could not find driver」になって大変だった
157 回閲覧されました
みなさんこんにちは、jonioです。
現在PHPアプリをDockerで立ち上げて開発をしていますがDBにMySQLを使ってPDOをすると「could not find driver」になりました。
「<?php phpinfo() ?>」を使うとPDOの項目にMySQLがないからですがMySQLでPDOを使えるようにするのが大変だったのでメモとしてこの記事を残します。
原因
docker-compose.ymlかDockerfileです。
修正後のファイルを載せておきます。
//docker-compose.yml
version: '3'
services:
php:
build:
context: .
volumes:
- .:/var/www/html
ports:
- 8000:80
container_name: php7.2-trial2
mysql:
platform: linux/x86_64 #Mac M1
image: mysql:5.7
volumes:
- /var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test
container_name: mysql5.7-trial2
//Dockerfile
FROM php:7.2-apache
RUN apt-get update && apt-get install -y \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install gd \
&& docker-php-ext-install pdo pdo_mysql
そして「docker-compose down」を叩いて「docker-compose up –build -d」を叩くとPDOができるようになります。