Laradock(Docker)でLaravelの開発環境を構築する

先日ローカル環境にLaravelを構築したのですが・・
coxcox.hatenablog.com

今後MySQLも必要になるし、必要なものを全部ローカルで準備するのも大変だなぁと思いDocker上にLaravelの開発環境を作ってみました!

今回はLaradockというLaravelの開発に必要な環境をDocker上で動かせるものを使いました。

laradock.io

Laradockのクローン

プロジェクト用のディレクトリを作成し、その配下にLaradockをクローンします。

$ mkdir <プロジェクトフォルダ>
$ cd <プロジェクトフォルダ>
$ git clone https://github.com/Laradock/laradock.git

MySQLの環境設定変更

laradockディレクトリにある env-example をコピーして .env ファイルを作成します。

$ cd laradock
$ cp env-example .env

.env ファイルを開いて MYSQL の設定を任意の値に変更します。

$ vim .env

215行目あたり
### MYSQL #################################################

MYSQL_VERSION=5.7
MYSQL_DATABASE=laravel
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root

コンテナの起動

nginx / mysql / workspace のコンテナを起動します。
(初回起動は時間がかかるので気長にお待ちください・・)

$ docker-compose up -d nginx mysql workspace
Creating laradock_docker-in-docker_1 ... done
Creating laradock_mysql_1            ... done
Creating laradock_workspace_1        ... done
Creating laradock_php-fpm_1          ... done
Creating laradock_nginx_1            ... done

ここでブラウザから「http://localhost」にアクセスしてみます。
この時点では404が出ますが問題ありません!次の手順に進みましょう〜
f:id:aym413:20190327235715p:plain:w550

Laravelプロジェクトの作成

Laravelプロジェクトはworkspaceコンテナに作成します。

workspaceコンテナにログインします。

$ docker-compose exec --user=laradock workspace bash
/var/www$ 

workspaceコンテナ上でLaravelプロジェクトを作成します。

/var/www$ composer create-project --prefer-dist laravel/laravel <Laravelプロジェクト名>

workspaceコンテナからログアウトします。

/var/www$ exit

Laravelプロジェクトを作成すると以下のようなディレクトリ構成になったと思います。

<プロジェクトフォルダ>
 ├  laradock
 └ <Laravelプロジェクト>

アプリケーションパスの変更

laradockからアプリケーションフォルダ(workspaceコンテナで作成したLaravelプロジェクト)が参照できるように.env ファイルを修正します。

$ vim .env

5行目あたり
### Paths #################################################
APP_CODE_PATH_HOST=../<プロジェクト名>

コンテナの再起動

.envファイルを修正した際にはコンテナの再起動が必要になります。

$ docker-compose up -d nginx mysql workspace

再度ブラウザから「http://localhost」にアクセスしてみます。
f:id:aym413:20190328002341p:plain:w550

Laravelの初期画面が表示されればOKです!

DBへの接続確認

mysqlコンテナも起動したのでMySQL Workbenchから接続確認をしてみます。
.envファイルのMySQLで設定した内容を入力した後「Test Connection」をクリックします。
以下のように Successfully made the MySQL connection となればOKです!
f:id:aym413:20190328003210p:plain:w300


今回Laradockを使ってDocker上にLaravelを構築してみましたが、とっても簡単に開発環境を作ることができました!
Laravelの開発環境を用意したいという方は是非このLaradock使ってみてはどうですか?