Laradockの導入手順
参照サイト一覧:
https://tadaken3.hatenablog.jp/entry/laradock-laravel
https://github.com/laradock/laradock/issues/251
1. 導入手順まとめ
1. 自分のプロジェクトを作成する
mkdir yourProject
現在のディレクトリ構成は以下のようになる。
development
┗ yourProject
2. プロジェクト内に移動する
cd yourProject
上記に続いて、Laradockをインストールする。
git clone https://github.com/LaraDock/laradock.git
現在のディレクトリ構成は以下のようになる。
development
┗ yourProject
┗ laradock
3. Laradock内に移動する
cd laradock
上記に続いて、env-exampleというファイルを.envという名前でコピーする。
cp env-example .env
4. .envファイルの内容を修正する
自分の開発環境にあった設定を施してやる必要があるので、ファイルの内容の書き換えを行う。
- 個人的にこの辺りから躓き始めた。(ほんとこの辺が苦手...)
(sudo) vi .env
<- このコマンドで.envファイルの変更を行う。
(sudo = 他のユーザ権限でコマンドを実行するときに使う)
開発環境の構築をするのでルートディレクトリではなく以下のように変更を行う。
+ DATA_PATH_HOST=.laradock/data```
<strong>5. MySQLの設定を変更</strong>
まずは、MySQLのバージョンを確認する。
```mysql --version```
確認が終わったら、.envファイルの以下の部分を変更します。
MYSQL
MYSQL_VERSION=8.0.12(初期設定は、latest)
MYSQL_DATABASE=mydb(接続したいDB名を記載)
MYSQL_USER=root
MYSQL_PASSWORD=PASSWORD(MySQLに接続する際のパスワード)
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
<strong>5. Docker コンテナを起動する</strong>
ここのエラーでもっとも時間を割いてしまった。
```docker-compose up -d nginx mysql phpmyadmin```
上記のコマンドを叩いて問題がなければ次へ(6. 接続状態の確認)!!!
自分の場合は以下のようなエラーが出ていました。(原因は特定できておらず定かではないです)
laradock_docker-in-docker_1 is up-to-date
Starting laradock_mysql_1 ...
laradock_workspace_1 is up-to-date
laradock_php-fpm_1 is up-to-date
Starting laradock_nginx_1_df13abf0034c ... error
Starting laradock_mysql_1 ... done
c31e7511cefa04a840e9e): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)
ERROR: for nginx Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1_df13abf0034c (ae021353106c09b15fddecaad8ed9d342abb355593fc31e7511cefa04a840e9e): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)
ERROR: Encountered errors while bringing up the project.
このようなエラーが出た場合の対応策(他ケースでも応用できます)としては、
```docker-compose ps```
上記のコマンドを叩いて、コンテナ内で立ち上がっているもののStatusを確認します。
```laradock_nginx_1_df13abf0034c nginx Exit 128```
自分の場合は、この部分がエラーを引き起こしている箇所だったので、nginx Exit 128 でググりました。
この場合、80番ポートを覗いてやる必要があります。
```sudo lsof -i :80```
詳しくはまだ調べきれていませんが、httpd関係の接続が邪魔をしていたみたいです。
ここで思ったこと、「げっ!めっちゃ色々動いとる!こりゃ立ち上がらんわけだ。」なので、
```sudo killall httpd``` <- 一旦、全部ストップしちゃう。
sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist
上記のコマンドの意味は正直まだわかっていませんが、これで自分は動くようになりました。
再度、
```docker-compose up -d mysql nginx```
動いたー!!!
<strong>6. 接続状態の確認</strong>
http://localhost
上記に接続してみると、
<img width="312" alt="20180629230557.png" src="https://qiita-image-store.s3.amazonaws.com/0/321807/4680b669-3fe7-c0d2-e33e-f37f9b3acc1f.png">
このような画面が表示されると思いますが、ここにLarvelがインストールされることになります。
http://localhost:8080
上記に接続してみると、phpMyAdminツールの画面が表示されます。さきほど、.envで設定したユーザー名でログインできるか確認しておきましょう。
<img width="500" alt="20180629230520.png" src="https://qiita-image-store.s3.amazonaws.com/0/321807/393d898c-9157-1b8b-3979-20913d579e41.png">
また、sshでコンテナに接続できるコマンドは以下の通りです。
docker-compose exec workspace bash
sshで接続後、プロジェクトの作成をします。
composer create-project laravel/laravel
終了!お疲れ様でーす!