LoginSignup
0
0

More than 1 year has passed since last update.

[Laravel][Docker]DBコンテナが正常に立ち上がっているのにLaravel側で接続できない場合の対処法

Last updated at Posted at 2021-05-12

正常にDBコンテナは動いているのにLaravelでは接続できない!

結構この罠に引っかかる人多いんじゃないかなと思って書きました。

環境

Laravel8
docker-compose 3.8

エラー(Laravel)

SQLSTATE[08006] [7] could not connect to server: Connection refused Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432?

直接DBには接続できる

スクリーンショット 2021-05-12 18.01.12.png

解決策

Laravelのデフォルトのdbホストが127.0.0.1になっています。
dbクライアント(tableplus)で繋がるんだから、なんかこれでいけそうな気がするんですけど、無理です。
→理屈は分からないのでわかる方教えてくだせえ!

env

$ docker-compose ps
      Name                     Command               State            Ports         
------------------------------------------------------------------------------------
api_project_app_1   docker-php-entrypoint php-fpm    Up      0.0.0.0:19000->9000/tcp
api_project_db_1    docker-entrypoint.sh postg ...   Up      0.0.0.0:5432->5432/tcp 
api_project_web_1   /docker-entrypoint.sh ngin ...   Up      0.0.0.0:80->80/tcp   

DBコンテナのホスト名をLaravelの.envに。

DB_HOST=127.0.0.1

DB_HOST=api_project_db_1

これでいけます

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0