zukucode
主にWEB関連の情報を技術メモとして発信しています。

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のコンテナに接続ができていることが確認できます。


関連記事