Docker+LaravelでMySQLを使えるようになるまでのメモ
環境
OS: macOS Mojave 10.14.6
Docker: version 19.03.1
Laradockのダウンロード
ディレクトリを作成後、Laradockをリポジトリから持ってくる
$ mkdir laradock_tutorial
$ cd laradock_tutorial
$ git clone https://github.com/Laradock/laradock.git
Cloning into 'laradock'...
remote: Enumerating objects: 9107, done.
remote: Total 9107 (delta 0), reused 0 (delta 0), pack-reused 9107
Receiving objects: 100% (9107/9107), 8.36 MiB | 4.38 MiB/s, done.
Resolving deltas: 100% (4891/4891), done.
MySQLの設定を変更
laradockディレクトリに移動、.env-exampleをコピーしてリネーム
今回はMySQLのバージョンは5.7, DB名はtest, ユーザー名はuser, パスワードはなしとする。
$ cd laradock
$ cp env-example .env
$ vi .env
# 240行目~
MYSQL_VERSION=5.7
MYSQL_DATABASE=test
MYSQL_USER=user
MYSQL_PASSWORD=
コンテナを初期化する
(かなり時間かかります)
$ docker-compose up -d nginx mysql workspace phpmyadmin
Laravelアプリケーションを作成
Workspaceコンテナに入ります。
Laravel5.7でsampleという名前のアプリケーションを作る(時間かかります)
途中で、Do not run Composer as root/super user! と出てくるが気にしない
$ docker-compose exec workspace bash
$ cd laradock
$ composer create-project "laravel/laravel" sample --prefer-dist "5.7.*"
Application key set successfully.
データベースの接続を設定する
コンテナ内でsampleアプリケーションが出来たのを確認してから、sampleディレクトリに移動
$ ls
laradock sample
$ cd sample
$ vi .env
# 12行目~ ホストのDB設定と同じにすること。
DB_DATABASE=test
DB_USERNAME=user
DB_PASSWORD=
sampleアプリケーションとLaradockの関連付け
$ cd ../laradock
$ vi .env
# 7行目~
APP_CODE_PATH_HOST=../sample
# workspaceコンテナから抜ける
$ exit
DB作成用ファイルを編集
$ cd mysql/docker-entrypoint-initdb.d
$ cp createdb.sql.example createdb.sql
$ vi createdb.sql
# 新しく記入
CREATE DATABASE IF NOT EXISTS `test` COLLATE 'utf8_general_ci' ;
GRANT ALL ON `test`.* TO 'user'@'%' ;
DBの作成とユーザーの関連付け
$ cd ../..
$ docker-compose exec mysql bash
mysqlコンテナに入る。
$ mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql
Enter password: (rootと入力)
# 作成されたか確認
$ mysql -u user -p
Enter password: (そのままEnter)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test | ← testデータベースが作成されている。
+--------------------+
mysql> exit
Bye
$ exit
動作確認
sampleディレクトリに移動して、マイグレーションできるか確認。
これで動けばMySQLを使うことが出来ます。
$ cd ../sample/
$ php artisan migrate:fresh
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
最後にサーバーが起動できているかを確認します。
$ php artisan serve
http://localhost:8000 にアクセスして以下のページが表示されていれば成功です。
参考にさせていただいたもの
・ https://qiita.com/yanagikouta/items/dcd7ce16b7fb7353e086
・ https://techblog.scouter.co.jp/entry/2019/01/11/133508
Author And Source
この問題について(Docker+LaravelでMySQLを使えるようになるまでのメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/kokamoto01/items/7ba908613e478f04dff1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .