のぐそんブログ

暗いおじさんがシコシコ書くブログです。

Laradockで簡単に開発環境を準備するメモ2

前回書いたLaradockで簡単に開発環境を準備するメモの続きです。

MysqlのコンテナのDBに接続してみたいと思います。

laradock/.envを編集する

以下の感じで修正する。
MYSQLのバージョンを変更。
8.04をインストールした場合にそのままだと認証形式でエラーとなるらしくここでは5.7を利用する。

### MYSQL #################################################

MYSQL_VERSION=5.7
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

MYSQLのバージョンを変更する場合は、DATA_PATH_HOSTで設定したフォルダをきれいして、イメージを作成し直す必要があるらしい。

rm -rf {DATA_PATH_HOSTのパス}/mysql
docker rmi laradock_mysql -f
docker rmi mysql -f
docker-compose build mysql

プロジェクトファイル側の.envファイルを修正

laradock/.envの設定に合わせて、プロジェクトファイル側の.envファイルも修正する。

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

コンテナを起動する。

docker-compose up -d nginx mysql

mysqlのコンテナに入る

コンテナに入る。

docker exec -it laradock_mysql_1 /bin/bash

ログインする。

mysql -u default -p 
Enter password: secret

データベースの一覧を表示し、defaultのデータベースを見てみる。 何もテーブルがないことが確認できる。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| default            |
| information_schema |
+--------------------+

mysql> use default;
Database changed

mysql> show tables;
Empty set (0.00 sec)

migrateを実行してテーブルを作成する

workspaceにはいる。

docker exec -it laradock_workspace_1 /bin/bash

migrateを実行。

root@e460cd3180b7:/var/www# php artisan migrate:install
root@e460cd3180b7:/var/www# php artisan migrate

mysqlのコンテナでテーブルを確認。
テーブルが作成されている。

show tables;
+-------------------+
| Tables_in_default |
+-------------------+
| migrations        |
| password_resets   |
| users             |
+-------------------+
3 rows in set (0.00 sec)