Docker Laravelでmysqlのコンテナに接続する
Dockerで作成したLaravelのコンテナからmysqlのコンテナに接続する方法を紹介します。
Docker Laravelをインストールするまででnginx, php, mysql, phpmyadminのコンテナを作成し、Laravelの環境のコンテナを作成しました。
この環境に対して、mysqlコンテナへの接続を設定します。
.envの修正
Laravelはデータベースへの接続情報を.envファイルに定義しています。
この接続情報を以下のように変更します。
.envDB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=docker_db
DB_USERNAME=docker_user
DB_PASSWORD=docker_passDB_HOSTにはmysqlコンテナのサービス名を指定します。
その他の項目も、mysqlコンテナで設定した値と同じ値を設定します。
参考にmysqlコンテナの設定は以下のようになっています。
docker-compose.yml db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: docker_db
MYSQL_USER: docker_user
MYSQL_PASSWORD: docker_pass
ports:
- "3306:3306"
volumes:
- ./docker/db/data:/var/lib/mysql
- ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf接続確認
appコンテナ内でphp artisan migrateコマンドなどを実行して、Laravelのプロジェクトからmysqlのコンテナに接続ができていることが確認できます。