前提
Dockerで環境を作り、その中にLaravelのアプリケーションを作りたいです。
ただデータベースはローカルのmysql使おうかなと思いました。
まず以下サイトを参考に、Dockerを立ち上げて、laravelプロジェクトを作りました。
ただ、docker-composer.ymlからDBの項目は消しました。
https://www.torat.jp/laravel-docker-lemp/
そしてlaravelの.envファイルのデータベースのDBの箇所を変えました。
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel_user DB_PASSWORD=password
それからモデルを作り、
tinkerでデータベースにデータを追加などしてみましたが特に問題はありませんでした。
問題は、コントローラーを作ってviewでデータベースの内容を表示させようとしたときに、エラーが出ました。
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
色々と調べて、laravelの.envファイルのDB_HOSTを変えました。
これでエラーは消えました。
DB_CONNECTION=mysql DB_HOST=gateway.docker.internal DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel_user DB_PASSWORD=password
ところが、これでtinkerを使おうとすると、
またさっきのエラーが出ます。
DB_HOST=127.0.0.1
に戻すとtinkerは使えますが、viewでエラーが出ます。
DB_HOST=gateway.docker.internal
にするとviewは治りますが、tinkerでエラーが出ます。
どうしてこんなことが起こるのでしょうか?
Dockerもサーバーも詳しくないため理由もよくわかりません。
どなたかご教授お願いいたします。
あなたの回答
tips
プレビュー