質問: ### 概要 docker-compose にアプリとデータベースのコンテナをビルドする際、アプリからデータベースへ接続出来ず困っています。 ビルド時のアプリ側で、アプリケーションをインストールする際、データベース(MySQL)への接続が必要になり、その際に下記のエラーが表示され進めません。 ``` SQLSTATE[HY000] [2002] No such file or directory ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) ``` ### 試した事 データベースに問題あると思い下記を試しました。 1)docker-compose.ymlのDBを下記から下記に変更 ``` 14 db: 15 ¦image: mysql:5.7 16 ¦ports: 17 ¦¦- '3306:3306' 18 ¦environment: 19 ¦¦MYSQL_ROOT_PASSWORD: hogehoge 20 ¦¦MYSQL_ROOT_HOST: localhost 21 ¦¦MYSQL_DATABASE: magento 22 ¦¦MYSQL_USER: magento 23 ¦¦MYSQL_PASSWORD: hogegoge 24 ¦volumes: 25 ¦- ./data/db-data:/var/lib/mysql 26 ¦- ./data/docker-logs/mysql:/var/log/mysql ``` ``` 14 db: 15 ¦build: ./mysql/ 16 ¦volumes: 17 ¦- ./data/db-data:/var/lib/mysql 18 ¦- ./data/sqls:/docker-entrypoint-initdb.d 19 ¦- ./data/docker-logs/mysql:/var/log/mysql 20 ¦environment: 21 ¦- MYSQL_ROOT_PASSWORD=PASSWORD 22 ¦- MYSQL_ROOT_HOST=localhost ``` 2) アプリケーション側にMySQLクライアントのインストール apt install -y mysql-server mysql-client 接続を試みましたが、概要欄のエラーと同じエラーが発生しました。 mysql -u magento -p hogegoge -h magento ### 質問 1) これらの件はビルド時に発生しており、「docker-compose up」まで辿り着いていません。ということはデータベースはビルド時にまだ起動していない(接続できる状態ではない)という事ですか? それですと、ビルド時に接続出来ない事が納得出来ます。 docker-composeでデータベースだけビルド、起動させておくことは可能ですか? 2) iptablesの設定の問題でしょうか? iptableの設定を行いましたが、エラーは変わりませんでした。
回答: 問題なく動作しました。環境の問題でした。