DockerでPDOをすると「could not find driver」になって大変だった

DockerでPDOをすると「could not find driver」になって大変だった

180 回閲覧されました

みなさんこんにちは、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ができるようになります。