Docker Laravelでmysqlのコンテナに接続する
Docker
で作成したLaravel
のコンテナからmysql
のコンテナに接続する方法を紹介します。
Docker Laravelをインストールするまででnginx
, php
, mysql
, phpmyadmin
のコンテナを作成し、Laravel
の環境のコンテナを作成しました。
この環境に対して、mysql
コンテナへの接続を設定します。
.envの修正
Laravel
はデータベースへの接続情報を.env
ファイルに定義しています。
この接続情報を以下のように変更します。
.env
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=docker_db
DB_USERNAME=docker_user
DB_PASSWORD=docker_pass
DB_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
のコンテナに接続ができていることが確認できます。