Laradock v5で開発環境を構築してみた

お久しぶりです。
1週間ぶりの投稿です。
今回は、Laravel ✗ Dockerを実現したLaradockで開発環境を構築しました。
最新バージョンのLaradock v5(20180809時点)は、v4と若干設定ファイルの中身が違うようなので、紹介したいと思います。

前提条件

1. Gitコマンドがインストールされている。
2. Dockerがインストールされている。
3. composerがインストールされている。
4. 80番ポートが未使用である。

手順

1. 作業ディレクトリを作成する。

$ mkdir [dir_name]
$ cd [dir_name]

2. Laravelのプロジェクトを作成する。

$ composer create-project --prefer-dist laravel/laravel [app_name]

3. Laradockをクローンする。

$ git clone https://github.com/Laradock/laradock.git
$ cd laradock

4. 設定ファイルをコピーする。

$ cp env-example .env

5. 設定ファイルを編集する。

$ vim .env

# 8行目: アプリのパス
変更前: APP_CODE_PATH_HOST=../
変更後: APP_CODE_PATH_HOST=../[app_name]

# 181行目: MySQLのDB名を変更
変更前: MYSQL_DATABASE=defulat
変更後: MYSQL_DATABASE=[app_name]

6. Nginxの設定ファイルを変更する。
この時、Chromeではxxx.devにすると、強制的にリダイレクトするようなので、その他のものにしましょう!

$ vim nginx/sites/default.conf

# 6行目: バーチャルホストを設定
変更前: server_name localhost
変更後: server_name [app_name].io

7. MySQLのファイルを変更する。

$ vim mysql/my.cnf

# [mysqld]の最終行に追加
default_authentication_plugin = mysql_native_password
$ vim mysql/docker-entrypoint-initdb.d/createdb.sql.example

# 以下のように修正
CREATE USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
GRANT ALL PRIVILEGES ON [app_name].* TO 'root'@'localhost' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON [app_name].* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

8. ホストの設定ファイルを変更する。

# Macの場合
$ sudo vim /etc/hosts

# 最終行に追加
127.0.0.1         [app_name].io

9. Dockerを起動する。

$ docker-compose up -d nginx mysql phpmyadmin redis workspace

10. http://[app_name].io/にアクセスする。

11. データベースを作成する。

$ docker-compose exec workspace bash
$ php artisan migrate
$ exit

12. phpMyAdmin(http://[app_name].io:8080/)からデータベースにログインできることを確認する。

  • サーバ: mysql
  • ユーザ名: root
  • パスワード: root

まとめ

簡単すぎる!!!!!