Laradockを使ってLaravelのローカル環境をサクッと作成・サブモジュールとしてプロジェクトに追加する

PHPで人気なフレームワークといえば、Laravelがありますがローカル環境の構築で公式ではhomesteadが昔から使われています。

VirtualBox+Vagrantが私はあまり好きでなく(むしろ毛嫌いしている)、dockerを触ることが多くなっているので似た人のために簡単にLaravel環境を構築できるLaradockを是非とも紹介したいと思います。

ただしLaravel8からはLaravel Sailも公式で紹介されているのでお好みでご利用ください。

Laradockとは

公式サイト: https://laradock.io/

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

さまざまあるLaravelの機能をdocker上にて構築できるdocker設定ファイルです。

設定によってWebサーバーであればNGINX/Apache2、DBではMySQL/PostgreSQL/MariaDBなどお好みの環境を簡単に設定することができバージョンなどもある程度指定することができます。

Laradockインストール方法

下記の環境を別途ご準備して下さい。

  • docker
  • ターミナルなどのコマンドラインツール
  • git

まずは本体をcloneします。laravelプロジェクトの直下で下記を実行してあげます。

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

設定ファイルをコピーしてお好みの環境情報に変更します。

cp .env.example .env
vi .env

docker環境を起動します。

下記の例はnginx(Webサーバー) + mysql(RDB) + redis(KVS) + workspace(PHPサーバー/laravel本体の置き場)

docker-compose up -d nginx mysql redis workspace

しばらくするとサーバーが起動されるため、laravelプロジェクトの.envファイルを今構築した環境に合わせて変更してあげます。

DB_HOST=mysql
REDIS_HOST=redis

http://localhost でブラウザアクセスできれば成功です。

Queueを使いたい、DBを変更したいなどあればdocker-composeの起動するサーバーを増やし、.envの変更すると簡単に構築できます。

Laradockをサブモジュールとして扱う

さて、このままではlaravelプロジェクトとlaradockのプロジェクト管理が煩雑になるのでlaravelプロジェクトのgitにサブモジュールとしてLaradockを入れてあげると管理しやすいです。

gitのサブモジュールは外部のリポジトリをプロジェクトに追加することができるため、外部リポジトリのソースコードは管理せずcommitIDにて管理され、かつプロジェクトとの紐付けも行うことができます。

Laravelプロジェクトにて下記コマンドにて追加してあげてください。

git submodule add https://github.com/Laradock/laradock.git

追加後Laradockフォルダができますが、環境構築時の手間を減らすためMakefileを追加してあげるといいかと思います。Laravelプロジェクト直下に「Makefile」を作成し、下記を記述してあげてください

up:
   cd laradock && docker-compose up --build -d nginx mysql redis workspace
init:
   cp local/.env laradock
remake:
   @make destroy
   @make init
   @make up
stop:
   cd laradock && docker-compose stop
down:
   cd laradock && docker-compose down
destroy:
   cd laradock && docker-compose down --rmi all --volumes
ps:
   cd laradock && docker-compose ps
logs:
   cd laradock && docker-compose logs
logs-watch:
   cd laradock && docker-compose logs --follow
app:
   cd laradock && docker-compose exec wordpress bash

laradock/.env.exampleをlaravelプロジェクトのlocal/.envに移動してあげ、設定することでローカルサーバーを起動する場合、下記のコマンドのみで起動できるようになります。

make init

コメントを残す

メールアドレスが公開されることはありません。