#はじめに
laradockでの環境構築でかなり時間がかかり苦労しました。
自分と同じような境遇の方の一助となれば幸いです。
また何か間違っていましたらコメント頂けるとありがたいです。
#前提
・MacOSを使用していること
・laradock for Mac がインストールされていること
・git が使えること
#ポイント
①MySQL5.7へダウングレードすること
②MySQLを再ビルドする場合は
①image ②volume ③laradock内の.envの3つを変更すること
(②の内容は作業中)
#laradockをクローンする
mkdir [ディレクトリ名] でファイル作成 cd [ディレクトリ名]で、移動。
今回はlaravel_appという名前にします。
$ mkdir laravel_app
$ cd laravel_app
laravel_app内にgit cloneする
$ git clone https://github.com/LaraDock/laradock.git
laradockディレクトリが確認できたらcdで移動
$ cd laradock
#.envファイルの作成・編集
.envファイルを作成する
$ cp env-example .env
####▼ポイント
MySQLのバージョンを指定する。
何やらmysqlのバージョンが8.0以上になっていると
セキュリティの関係でDockerがうまく動作しないらしい。
vim .env
で先ほど作成したlaradock/.envのmysqlの記載を変更する
MYSQL_VERSION=5.7
ついでにもうひとつ。
後でインストールするlaravelの名前(なんでもいい)も設定しておく。
ここではlaravel-practice
にします。
APP_CODE_PATH_HOST=../laravel-practice/
#コンテナの作成
docker-compose up -d nginx mysql phpmyadmin
でコンテナを作成する
※Dockerのアプリが立ち上がっていないとエラーになります!!
エラー(Couldn't connect to Docker daemon)
$ docker-compose up -d nginx mysql phpmyadmin
Recreating laradock_docker-in-docker_1 ... done
Recreating laradock_mysql_1 ... done
Recreating laradock_phpmyadmin_1 ... done
Recreating laradock_workspace_1 ... done
Recreating laradock_php-fpm_1 ... done
Recreating laradock_nginx_1 ... done
docker ps
コマンド、もしくはdocker container ls
コマンドで
コンテナが立ち上がっているか確認
statusがupになっていれば無事に起動している
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a4204c06f872 laradock_phpmyadmin "/docker-entrypoint.…" 5 minutes ago Up 22 seconds 0.0.0.0:8080->80/tcp laradock_phpmyadmin_1
ba7a3de12bb8 laradock_mysql "docker-entrypoint.s…" 5 minutes ago Up 26 seconds 0.0.0.0:3306->3306/tcp laradock_mysql_1
e18f799feb80 laradock_nginx "/bin/bash /opt/star…" 5 minutes ago Up 25 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp laradock_nginx_1
3cfac25ab736 laradock_php-fpm "docker-php-entrypoi…" 5 minutes ago Up 25 minutes 9000/tcp laradock_php-fpm_1
0fce26e9732d laradock_workspace "/sbin/my_init" 5 minutes ago Up 25 minutes 0.0.0.0:2222->22/tcp laradock_workspace_1
5acb64003410 docker:dind "dockerd-entrypoint.…" 5 minutes ago Up 25 minutes 2375-2376/tcp laradock_docker-in-docker_1
先ほど起動していることを確認したコンテナlaradock_workspace
にアクセスし
Laravelプロジェクトを立ち上げる
※rootで入ると後々警告が出るので --user=laradockで入ったほうがいい。
(--user=laradock書かなくても実行はされます)
$ docker-compose exec --user=laradock workspace /bin/bash
@の前がlaradockかrootになっていれば成功。
いよいよlaravelをインストール。
laravel-practiceの部分はお好きな名前で大丈夫。
(最初に.envのAPP_CODE_PATH_HOSTに書いた名前)
$ root@f13fff2dfc34:/var/www# composer create-project laravel/laravel laravel-practice
lsでlaravel-practiceがあれば、インストール成功。
$ root@f13fff2dfc34:/var/www# ls
laradock laravel-practice
laravel-practiceの.envを編集。
一度exitで出て、laravel-practiceに移動する。
laravel-practice内の.envファイルを修正。
$ DB_CONNECTION=mysql
DB_HOST=mysql //変更
DB_PORT=3306
DB_DATABASE=default //変更
DB_USERNAME=default //変更
DB_PASSWORD=secret //変更
できたらDockerの再起動を行う。
$ docker-compose up -d nginx mysql phpmyadmin
Recreating laradock_docker-in-docker_1 ... done
Recreating laradock_mysql_1 ... done
Recreating laradock_phpmyadmin_1 ... done
Recreating laradock_workspace_1 ... done
Recreating laradock_php-fpm_1 ... done
Recreating laradock_nginx_1 ... done
(http://localhost/ )でlaravelのページが表示されれば成功。
###最後にマイグレーションできるか確認。
$ $docker-compose exec workspace /bin/bash
で再度workspaceに入る。
php artisan migrate
でマイグレート
root@64aa8ef8bf14:/var/www# php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (0.13 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (0.09 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (0.05 seconds)
お疲れ様でした。