dockerで構築したlaravel環境で、マイグレーションエラーしたら下記のようなエラー
could not find driver
Contents
原因:MySQLのドライバが存在しないから
これは、PDO(PHP Data Object)がDBを操作するために必要な、
ドライバと言うものがないために出ているエラー。
使用中のphpイメージでは、デフォルトでsqlite用ドライバしかないらしい。
下記コマンドで現在のモジュール一覧を調べることができる(phpコンテナ内で打つこと)。
php -m

phpinfo()でも確認できる。

解決策:MySQLのドライバ(pdo_mysql)をインストールする
下記手順で、mysqlのドライバ(pdo_mysql)をインストールする。
①Dockerfileを修正する
Dockerfileを下記のように修正する。
FROM php:7.3-apache
# pdo_mysql(mysqlのドライバ)をインストールする
RUN docker-php-ext-install pdo_mysql
②Dockerfileを使ってphpイメージをビルドする
下記コマンドをDockerfileが存在する階層で実行し、phpイメージをビルドする。
docker build -t php:7.3-apache .
※「docker build -t イメージ名:タグ名 . 」する時は、
タグ名をdocker-composeで書いてあるタグ名に指定するよう気をつけよう
イメージがビルドできたら、コンテナを再起動。
んでもう一回コンテナ内でphp -mを打つと、

できてる。
と言うことで、改めてphp artisan migrateすると、マイグレーションが成功するはず。
コメントを残す