こんにちは、Dockerの理解が中途半端でビルドする度に疲弊しているしょうみゆです。
DockerでBedrockを使用したWordPress環境開発で上記のエラーにぶちあたりましたので自分のための覚書をします。
環境
Docker version 19.03.8
docker-compose version 1.25.4
エラーの内容
冒頭でもありましたが、Docker composeを使用してRootsのBedrockでWordPress環境を構築していました。
二つめのBedrockのWordPressサイトだったので、docker-compose.ymlのMySQLのコンテナとPHPMyAdminのコンテナ名を変更して、環境変数などの設定をして立ち上げたら、下記のようなエラーがでました。
php_network_getaddresses: getaddrinfo failed: Name or service not known
データベースのホスト名が合っていなかったのが原因だった
結論は上記のとおり、環境変数で設定していたデータベースのホスト名がdocker-compose.ymlで設定したホスト名と異なっていたことが原因でした。
version: "3"
services:
〜省略〜
mysqldb:
image: mysql:${MYSQL_VERSION}
container_name: mysqldb
restart: always
env_file:
- ".env"
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
ports:
- "8989:3306"
volumes:
- "./data/db/mysql:/var/lib/mysql"
docker-compose.ymlで上記のような設定をしていた場合、DBのホスト名がcontainer_name
で設定している名称に合わせるのですが、これがわかっていなくて今回のDB接続エラーになっていました。
# MySQL
MYSQL_VERSION=8.0.21
MYSQL_HOST=mysqldb
MYSQL_DATABASE=test
MYSQL_ROOT_USER=root
MYSQL_ROOT_PASSWORD=root
MYSQL_USER=dev
MYSQL_PASSWORD=dev
ホスト名を合わせたら無事にWordPressのインストール画面が表示されました!
参考にしたサイト
エラー解消で参考にしたサイト
本当に助かりました〜!
今回のDockerやBedrockで使用しているリポジトリや参考サイト
最近はローカル環境のWordPress構築にDocker×Bedrockを使用しています。
Dockerの代わりにTrellis使用版もありますが、今度どちらの環境構築の記事も書こうかなーと思います(多分・・)