はじめに

Laradockについて

PHPを開発するのに必要なアプリが全部セットになったDocker環境。 今回はMySQL + PHP-FPM + NGINX + Laravelでいきますが、データベースにPostgreSQLを選んだり、WebサーバにApacheを選んだりかなり自由度は高いです。

ディレクトリ構成

.
├── laradock-dakoku ←Laradockのコード (docker-composeコマンドはここで実行)
└── src ←Laravelのコード (コンテナに入らずエディタで編集できる)

コンテナを動かすための初期設定

PROJECT=(プロジェクト名)
mkdir $PROJECT
cd !$
# イメージを他プロジェクトと共用しないよう名前を変える
git clone https://github.com/Laradock/laradock.git laradock-$PROJECT
cd laradock-$PROJECT
cp env-example .env
DB_HOST=mysql
APP_CODE_PATH_HOST=../src
# MySQL8の認証方式caching_sha2_passwordにPHPのMySQLライブラリが対応していないため
MYSQL_VERSION=5.7.25

コンテナを動かす

docker-compose up -d nginx mysql workspace

Laravelをインストール

docker-compose exec workspace bash
# バージョンは好きなものを指定する。ここでは5.2系
composer create-project laravel/laravel . "5.2.*"

DB migrate実行

DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
php artisan migrate

NGINX設定

cp nginx/sites/laravel.conf.example nginx/sites/laravel.conf
root /var/www/src/public;
docker-compose stop nginx
docker-compose up -d nginx

Webブラウザでアクセス

https://localhost/

Q&A

Q1. artisanコマンドはどうやって実行すればいい? A1. laradockのディレクトリでdocker-compose exec workspace bash

Q2. NGINXのログはどこ? A2. laradock配下のlogs/nginx

Q3. MySQLのデータはどこ? A3. laradockの.envファイル、DATA_PATH_HOSTに定義されている場所 (デフォルトは~/.laradock/data)。