(docker)(Laravel)マイグレーション時、php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not knownのエラー

php-migration-error-php-network-getaddresses

 

 

dockerで構築したlaravel環境で、マイグレーションエラーしたら下記のようなエラーが出た。

php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known

 

「php_network_getaddresses: getaddrinfo failed」から始まるエラーは、
ホストの設定や名前解決でエラーが発生していることを示すエラーらしい。

今回は上記エラーの原因と解決策を紹介する。

 

原因:phpコンテナ内でマイグレーションしていなかった




「php_network_getaddresses: getaddrinfo failed」のエラーが起きていた原因は、
マイグレーションをコンテナ内で実行していなかったからだった。

自分がマイグレーションを実行していたのは、ローカルの環境だった。

 

 

解決策:コンテナ内でマイグレーションする

「php_network_getaddresses: getaddrinfo failed」のエラーを解決するには、
マイグレーションをコンテナ内で実行すれば良い。

下記は一例となるが、マイグレーションをコンテナ内で実行する手順だ。

#phpコンテナに入る
docker-compose exec php bash

#laravelアプリケーションのディレクトリへ移動
cd laravelアプリケーションのディレクトリ

# マイグレーション実行
php artisan migration

 

 

参考までに、dockerコマンドの使い方をまとめた記事を紹介しておく。

docker-command

 

 

 

それでもマイグレーションできない場合

上記の対処方法でもマイグレーションできない場合は、
下記のパターンに当てはまっていないか要確認だ。

 

①laravelからのDB接続設定が誤っていないか

そもそも、laravelからコンテナのDB(MySQL)への接続設定が間違っている可能性がある。

laravelがDBへの接続をするための設定を書くのは/.envファイル。

DB_HOSTには、docker-composeに記載してある、mysqlのサービス名を記載する。
DB_DATABASEには、接続したいDBの名前を記載する。

 

②その他

または筆者の場合、下記のようなエラーも出たので、参考に。
ドライバーが存在しない時に起きるエラー。

 

docker-laravel-migration-could-not-find-driver

 

 

「php_network_getaddresses: getaddrinfo failed」が出る時の原因と対処法まとめ

 

「php_network_getaddresses: getaddrinfo failed」のエラーが起きる原因は、
マイグレーションをコンテナ内で実行していなかったから

「php_network_getaddresses: getaddrinfo failed」のエラーを解決するには、
マイグレーションをコンテナ内で実行すれば良い。

 

 

https://www.docker.com/

 

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です