2024
June
07
【Laravel】Docker環境でmigrationを実行するとcould not translate host nameエラーが発生する件について
今回はDocker環境で、Laravelのmigrationやseedコマンドを実行すると以下のエラーが発生する原因と、その解決法を紹介します。
could not translate host name “host_name” to address: nodename nor servname provided, or not known
エラーが発生するケース
まず前提条件として、Docker環境での.envファイル内のDB接続定義は、以下のとおりDB_HOSTにDockerコンテナ名を指定しています。
DB_CONNECTION=pgsql
DB_HOST=host_name
DB_PORT=5432
DB_DATABASE=test_db
DB_USERNAME=username
DB_PASSWORD=passwordこの状態で以下のようにartisanコマンドを使ってmigrationを実行するとエラーが発生します。
php artisan migrateエラーの原因と解決法
これは、コマンドをホスト側で実行しているのが原因で、ホスト側は.envで指定されているコンテナ名が何を指しているのか解決することができません。
そのため、Dockerコンテナ内でコマンドを実行する必要があります。
docker exec laravel_container_name php artisan migrateDockerコンテナ内で実行すると、コンテナの名前解決が行われ、正常にコマンドを実行することができるようになります。
このカテゴリの最新記事
2025.05.16
WordPressでPDF・動画を一元管理:カスタム投稿+ACFで実装する資料ギャラリー
2025.08.04
Microsoft TeamsのIncoming Webhookが2025年末に廃止へ 、Workflowsへの移行方法を解説
2025.04.11
windows11でmicrosoft 365をインストールしようとして、office 2016版がインストールされてしまう現象の対処法
2024.05.15
業務効率化!時短Chromeショートカットキー【Mac】