【DockerのLaravelコンテナ中でデータベースのマイグレーションができない】
teratail初投稿です。宜しくお願い致します。
DockerでLaravel環境を構築しており、Laravelでデータベースのマイグレーションを行ったところ、以下のエラーが出ております。
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
開発環境
Mac OS : Mojave Version10.14.1
Docker OS(Laravelコンテナ) : Debian9.6
Mysql Version : 5.7
Laravel Version : 5.5
PHP Version : 7.1
Middleware:Apache2.4
<環境構築の流れ>
以下のように、DockerFileを設定してコンテナを作成しております。
FROM php:7.1-apache RUN apt-get update && apt-get install -y --no-install-recommends \ && docker-php-ext-install mysqli pdo pdo_mysql \ && mkdir /laravel \ && echo ServerName hogehoge > /etc/apache2/conf-available/fqdn.conf \ && a2enmod rewrite FROM mysql:5.7 ENV MYSQL_ROOT_PASSWORD *********** ENV MYSQL_DATABASE kurofune RUN { \ echo '[mysqld]'; \ echo 'character-set-server=utf8mb4'; \ echo 'collation-server=utf8mb4_general_ci'; \ echo '[client]'; \ echo 'default-character-set=utf8mb4'; \ } > /etc/mysql/conf.d/charset.cnf
コンテナをビルド後、DockerFileの存在するカレントディレクトリで以下のコマンドを使用してコンテナのブリッジを行いました。
docker network create --driver bridge web
ブリッジ後、以下のコマンドでMysqlコンテナをRunさせ、
docker run -p 3306:3306 --name=mysqldb --net=web imageID
error: database is uninitialized and password option is not specified You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL
のメッセージが出るので
docker run -e MYSQL_ROOT_PASSWORD=*********** mysql:5.7
でパスワードを設定した後、
Laravelコンテナ中でデータベースのマイグレーションを行ったところ
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
のエラーメッセージが出ています。
個人的にはDockerファイルでデータベースのパスワードを設定をしているにも関わらず、再度パスワード設定が求められることがおかしいのかなと思っています。
何かアドバイス頂けると嬉しいです!!!!
ちなみに、環境設定のファイルの内容は以下になります。
/Users/vivyuki/Sites/laravel/config/database.php
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'mysqldb'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'kurofune'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', '***********'), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ],
/Users/vivyuki/Sites/laravel/.env
DB_CONNECTION=mysql DB_HOST=mysqldb DB_PORT=3306 DB_DATABASE=kurofune DB_USERNAME=root DB_PASSWORD=***********
宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。