Laradockのセットアップに関する手順書が欲しかったのですが、ググって出てくるサイトがどれもバラバラの手順を示していて、結局何をしたらいいのかを判断するまでにかなり時間がかかってしまいました。。
なので、自分用の備忘録を兼ねて、laradockの初期設定方法をまとめておきます。
身も蓋もないことですが、こういうTipsは公式サイトを読むのが一番です。。
が、この投稿がその橋渡しとなれば幸いです!
前提
- Mac OS を利用していること
- Docker for Mac がインストールされていること
- git を利用できること
laradockをcloneする
mkdir [ディレクトリ名] && cd [ディレクトリ名]
で、ディレクトリを作成し、移動します。
~/laravel
❯ mkdir sample_app && cd sample_app
git clone
してきます。
~/sample_app
❯ git clone https://github.com/LaraDock/laradock.git
すると、laradock
ディレクトリが作成されます。
存在を確認した後、laradock
ディレクトリに移動します。
~/sample_app
❯ ls
laradock
~/sample_app
❯ cd laradock
.env
ファイルの作成・編集
cp
コマンドを用いて、.env
ファイルを作成します。
~/sample_app/laradock master
❯ cp env-example .env
次に、MySQLのバージョンを指定します。
というのも、2018年2月1日現在、mysqlのバージョンが8.0以上になっているとセキュリティの関係でDockerがうまく動作しません。
こちらに詳細をまとめてあります↓
Laradock で mysql がうまく動作しない時は ( mysqlコンテナが起動しない、migration 出来ない)
ということで、先ほど作成したlaradockディレクトリ内の.env
ファイルを編集します。
# MYSQL_VERSION=latest 変更前
MYSQL_VERSION=5.7 #変更後
ついでにMYSQLに関する情報も確認しておきましょう。
公式ドキュメントを読むと、
The default username and password for the root MySQL user are root and root.
とのこと。MYSQL_ROOT_PASSWORD
がroot
になっているのがわかりますね。
~/sample_app/laradock master
❯ cat .env |grep MYSQL_
WORKSPACE_INSTALL_MYSQL_CLIENT=false
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
コンテナを作成する
その上で、docker-compose up -d
コマンドを入力し、コンテナを立ち上げます。
ちなみに、-d
オプションはdetatchedの略で、バックグラウンドでコンテナを実行してくれるものです。
~/sample_app/laradock master
❯ 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
コマンドでコンテナが立ち上がっているかを確認しておきましょう。
~/sample_app/laradock master
❯ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
592e749b5196 laradock_nginx "/bin/bash /opt/star…" 5 minutes ago Up 5 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp laradock_nginx_1
055056a185a1 laradock_php-fpm "docker-php-entrypoi…" 5 minutes ago Up 5 minutes 9000/tcp laradock_php-fpm_1
8695c852dc7d laradock_workspace "/sbin/my_init" 5 minutes ago Up 5 minutes 0.0.0.0:2222->22/tcp laradock_workspace_1
ce452294c851 laradock_phpmyadmin "/run.sh supervisord…" 5 minutes ago Up 5 minutes 9000/tcp, 0.0.0.0:8080->80/tcp laradock_phpmyadmin_1
31cac2dbfc90 laradock_mysql "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp laradock_mysql_1
4ff26c75d351 docker:dind "dockerd-entrypoint.…" 5 minutes ago Up 5 minutes 2375/tcp laradock_docker-in-docker_1
無事に起動していますね。
Workspace上にLaravelを立ち上げる
まずはworkspaceに入ります。root
ユーザーでログインしてしまうと後ほどcomposerに怒られるので、laradock
ユーザーでログインします。
~/sample_app/laradock master
❯ docker-compose exec --user=laradock workspace /bin/bash
ログイン後のユーザー名がlaradock@...
となっていればOKです。
laradock@8695c852dc7d:/var/www$
ではいよいよcomposerコマンドを用いてLaravelをインストールしましょう。
my-first-app
の部分は自分の好きな名前を入力してください。
laradock@8695c852dc7d:/var/www$ composer create-project laravel/laravel my-first-app
インストールが完了するのにまあまあ時間がかかるため、気長に待ちます。
ディレクトリが作成されているかを一応確認しておきましょう。
laradock@8695c852dc7d:/var/www$ ls
laradock my-first-app
##.env
ファイルを編集する
インストールが完了したらmy-first-appディレクトリ内にある.env
ファイルを編集します。
注意:先ほど編集したのはlaradockフォルダ内の.env
ファイルです!間違えないように!
DB_HOST=mysql # 127.0.0.1 から変更
DB_DATABASE=default # homestead から変更
DB_USERNAME=default # homestead から変更
そしたら今度は、laradockディレクトリ内の.env
ファイルを編集します。ややこしいですね。。
APP_CODE_PATH_HOST=../
となっているものを、自分が先ほど作成したLaravelプロジェクト名に変更します。
まずはexit
コマンドを叩いて、仮想環境から抜け出ましょう。
laradock@8695c852dc7d:/var/www/my-first-app$ exit
そして、.env
ファイルを編集します。
APP_CODE_PATH_HOST=../my-first-app/
ここまで設定が終わったらdockerを再起動します。
~/sample_app/laradock master
❯ docker-compose stop
Stopping laradock_nginx_1 ... done
Stopping laradock_php-fpm_1 ... done
Stopping laradock_workspace_1 ... done
Stopping laradock_phpmyadmin_1 ... done
Stopping laradock_mysql_1 ... done
Stopping laradock_docker-in-docker_1 ... done
~/sample_app/laradock master
❯ docker-compose up -d nginx mysql phpmyadmin
Recreating laradock_mysql_1 ... done
Recreating laradock_docker-in-docker_1 ... done
Recreating laradock_workspace_1 ... done
Recreating laradock_phpmyadmin_1 ... done
Recreating laradock_php-fpm_1 ... done
Recreating laradock_nginx_1 ... done
http://localhost/ にアクセスしてLaravelのTop画面が出てきたら成功です!!
念の為、migrate
コマンドが通っているかを確認しましょう。
~/sample_app/laradock master 2m 23s
❯ docker-compose exec workspace /bin/bash
root@30a950d2b38e:/var/www# php artisan migrate
Nothing to migrate.
おまけ: phpmyadminを使う
http://localhost:8080/ にアクセスして下記のように打ち込めばOK!
以上!