Laravel:Redis php_network_getaddresses: getaddrinfo failed: Name or service not known [tcp://redis:6379]
Laravel:Redis php_network_getaddresses: getaddrinfo failed: Name or service not known [tcp://redis:6379]
とある現場にて、Laradockを使い開発環境を構築していました。
で、詰まったのがこのRedisのエラーです。
検索すると「M1_MACの事由」の話も存在しており「それか!」とも思ったのですが、何しても治らない。
先に結論を書いてしまうと次の通り。
実行コマンドに Redis
を入れてなかった
なんてつまらないところで時間を取られていたのだと落ち込みますね、こういうの。
そもそものLaradockというDocker構成について
Laradockって便利です。
Laravelで欲しいだろう構成 [ mysql
/nginx
/apache
] が最初っから入っています。
aws-eb-cli
のDockerまで用意されているんだから至れり尽くせりです。
が、いろんなものが入っているので「何を使っているか」しっかり把握していないと怖い存在でもあります。
例えば、似た構成のDockerを組んでも予想していないモノが動いていて『本番環境に移すとエラー』なんてこともあり得ます。で、そうならない為にDocker起動時に【起動するコンテナ】を指定するということをよくやります。で、その際にはまた至れり尽くせりで関連するコンテナを立ち上げてくれるのであまり頭を悩ませずにすみます。
今回の問題点
1 |
docker compose up -d --build nginx php-fpm mysql |
こんなコマンドで実行しました。
M1Macで利用するDocker Desk Top
ですが、コマンドがdocker-compose
じゃないみたいです。
※docker-composeでも動きますが、感覚的に処理が遅いように感じます。
そして出てきたエラーがタイトルのエラー。
1 |
Redis php_network_getaddresses: getaddrinfo failed: Name or service not known [tcp://redis:6379] |
これですが、コンテナ起動コマンドを次のようにする事で解決となりました。
1 |
docker compose up -d --build nginx php-fpm mysql redis |
はい、最後にredis
を追加しただけです。
要はね、勝手に立ち上がってくれてると思ってメインなコンテナだけ立ち上げたらredisコンテナがないから【そんなサービスしらね】となってたと言うね。解決すると当たり前の話なんだけど、悩んでる時はこう言うのに気づかないんだよね。
参考サイト
「起動してないだけ」と言う原因ではなくお悩みの場合は下記サイトが参考になります。
- docker-composeでredisコンテナがconnection refusedする
- getaddrinfo failed: Name or service not known [tcp://redis-slave:6379]
まとめ
たかだかこれだけの問題に丸 1日を要した事は案件先には内緒です。
流石にコレは不味いと思い、色々つけて日々の報告いたしました。
laradlckのように色々入ってるパッケージを利用する際は気をつけましょう。
自戒の念を込めて。
-
前の記事
Laravel:単語の接続方法(〜Case)と命名規制とベストプラクティス 2021.10.12
-
次の記事
Laravelからaws-sdk-for-php でDynamoDBからデータを取得する時の注意点 2021.10.26
コメントを残す