Docker環境のLaravel5.5で、実行環境でDBのホスト名を切り替えたい場合
php_sapi_name()関数で環境を判定して /config/database.phpで切り替えて上げればOK
‘cli’ならポートフォワーディングしているのホスト(親機)の127.0.0.1で接続
(apacheモジュールの場合は’apache2handler’)
'mysql' => [
'driver' => 'mysql',
'host' => (php_sapi_name()=='cli')? '127.0.0.1':env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],