タイガーラック クリエイティブブログ
2024
May
30

【Laravel】Docker環境でmigrationを実行するとcould not translate host nameエラーが発生する件について

今回はDocker環境で、Laravelのmigrationやseedコマンドを実行すると以下のエラーが発生する原因と、その解決法を紹介します。

エラーが発生するケース

まず前提条件として、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 migrate

Dockerコンテナ内で実行すると、コンテナの名前解決が行われ、正常にコマンドを実行することができるようになります。

このカテゴリの最新記事

関連記事

SHOP LIST

タイガーラック株式会社

〒577-0056
大阪府東大阪市長堂1-3-14 TOKUYASU Bld.