練習用にLaravelとDockerのMysqlを作成する
#1.プロジェクトを作成
composer create-project --prefer-dist laravel/laravel projectname 6.5.*
↑プロジェクト名 ↑laravelのバージョン指定
ターミナルで上記のコマンドを入力。
laravelのプロジェクトを作成。プロジェクト名をつける。
バージョンを指定していないと最新すぎて困ることもある。
#2.時々出るらしいエラー。
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
PCの中のPHPコマンドが壊れてたりとかすることがあるらしい。こういうときは、以下のコマンド
brew update && brew upgrade
で修復される。しばらく時間がかかるので、待つ
終わったら、1.のコマンドを打って、やり直し〜
#3.DockerでMysqlを起動する呪文の解説
docker stop 〇〇|| true && docker run --name 〇〇--rm -d -it -p 33061:3306 -e MYSQL_ROOT_PASSWORD=△△ -e MYSQL_DATABASE=✕✕ mysql:5.7
の呪文をうつ。
呪文の解説は以下。
docker stop 〇〇-mysql || true &&
は後で説明するのでまずはそれ以降を。
##第一部
かなりバラバラにして解説
docker run //docker起きて!
--name 〇〇 //コンテナ(mysql)に〇〇という名前をつける
--rm //mysqlがstopしたときに、dockerの中身を消す。これのおかげで、次に起動するたびにmysqlは消える。(練習用なので。これをつけていないと、同じ〇〇という名前のMysqlを他で起動したときにマイグレーションがかけられないことがある)
-d -it //オプションと呼ばれる部分。 -dはバックグラウンドで実行、-itはコンソールでの文字入力を可能にして、結果を出力
-p 33061:3306 //ポートは、pc側は33061で送って、Docker側は3306で受け取ってね。
-e MYSQL_ROOT_PASSWORD=△△ //Mysqlのパスワードを△△に設定
-e MYSQL_DATABASE=×× //××という名前のDatabaseを作成
mysql:5.7 //ver5.7のmysqlを指定。
PC側のポートは33061じゃなくてもかぶってなければよい。かぶってたら起動できないって怒られるそうな。
けど、Docker側は3306で受け取るって決まりなので、それ指定で。
##第二部
上記のコマンドだと起動するだけなので、そもそも今起動しているのか、ストップしているのかがわからない。
なので、上のコマンドの前に下記のコマンドを打ちます。
docker stop 〇〇|| true && //docker、 〇〇という名前のmysqlをストップして!その後に、以降の処理を実行して
&&
は、&&以前の処理を済ませてから(つまり、前の処理が成功してから)&& 以降の処理を進めて、という意味らしい。
||true
は前の処理が成功していようが、していまいが、「成功」とみなす。
これによって、その後の処理は絶対に行われる。
#4.Laravelの.envファイルにmysqlの設定を書き込む。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=✕✕
DB_USERNAME=root
DB_PASSWORD=△△
先程設定した内容を記入する。
これでLaravelライフが始まる・・・