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


LaravelをDockerによるコンテナ化で使用する

LaravelはPHPのフレームワークであり、これを使用するにはいくつか方法があるのだが、
今回はDockerを使った環境構築を行う。

必要なもの
・Docker
・git

既に上記の2つがインストールされていることを前提に話を進めます。

まず、Docker用のディレクトリMyDockerを作成し、cdでMyDockerディレクトリへ移動する。

mkdir MyDocker
cd MyDocker

MyDockerでリポジトリを新規作成する。

git init

Laradockをcloneする。

git clone https://github.com/LaraDock/laradock.git

すると、MyDockerディレクトリ下にlaradockディレクトリが新たに追加されており、
このlaradockディレクトリ内に各種設定ファイルが入っている。

MyDocker
└── laradock

続いて、laradockディレクトリ内に移動し、環境設定ファイルを作成する。

cd laradock
cp env-example .env

作成した環境設定ファイルを下のように変更する(vimなど)。

.env
<アプリケーションのディレクトリを指定>
APP_CODE_PATH_HOST=../
↓
APP_CODE_PATH_HOST=../sample_app

<MySQLのバージョンを変更>
MYSQL_VERSION=latest
↓
MYSQL_VERSION=5.7

ここでコンテナ「workspace」を立ち上げる。

docker-compose up -d workspace

workspaceコンテナにアクセスする。

docker exec -it --user=laradock laradock_workspace_1 bash

workspaceコンテナ上で新規プロジェクトを作成する。
つまり、Laravelをインストールするのである。
※([プロジェクト名]と[バージョン指定](Laravelのバージョン)を指定してやる。)

今回は下のようにプロジェクトsample_appを作成するようにする。

composer create-project laravel/laravel [プロジェクト名] --prefer-dist [バージョン指定]

composer create-project laravel/laravel sample_app --prefer-dist "5.5.*"

これにより、現在のworkspaceコンテナのDocumentRootに新規プロジェクトが保存された訳だが、
同時にlaradockディレクトリと同じ階層にはsample_appディレクトリが保存されている。

MyDocker
├── laradock
└── sample_app

このsample_appディレクトリの中身はworkspaceディレクトリと連動しており(.envファイルを上で変更したため)、
上記の操作でLaravelがcomposerによりインストールされた訳である。

workspaceコンテナ: /var/www
   sample_app: /MyDocker/sample_app

プロジェクトの作成が一旦ここで終了したので、コンテナ内から出てlaradockでworkspaceコンテナを再起動する。

exit
docker-compose stop
docker-compose up -d workspace nginx mysql

既にsample_appにはLaravelがインストールされており、初期設定として中のsample_appディレクトリにあるapp.phpを変更しておく。

sample_app/config/app.php
app.php
'timezone' => 'UTC',
↓
'timezone' => 'Asia/Tokyo',

'locale' => 'en',
↓
'locale' => 'ja',

最後に下のリンクにアクセスして、画像のページが表示されたら
Laravelの設定は無事完了となる。