どうも、こうすけ(@kosuke_upd)です。
今回は、PHPフレームワーク「Laravel」の開発環境を、Docker(Laradock)を用いて構築する方法を解説します。
■ Laradockとは
Laradockとは、DockerでLaravelの開発環境を簡単に構築できるDockerイメージです。プロジェクトに合わせて、PHPのバージョンやWEBサーバやデータベースなどの切り替えも簡単に行えます。
では、Dockerを用いたLaravelの開発環境構築手順を解説していくので、順番に見ていきましょう。
■ 実施環境
- macOS 10.14 Mojave
- Docker for Mac Version 18.06.1
手順1. Docker for Mac をインストール
まずは、Docker for Macをダウンロードし、インストールしましょう。
Docker for Macの詳しいインストール方法はこちらで説明しているので、もしやり方がわからない場合は参考にしてみてください。
DockerをMacにインストールする方法
手順2. Laradockのclone
まずは、Laradockをcloneするのですが、その前に任意のプロジェクト用ディレクトリを作成しましょう。
ターミナルで下記コマンドを実行し、任意のプロジェクト用ディレクトリを作成し、そのディレクトリに移動しましょう。
mkdir MyProject
cd MyProject
プロジェクト用ディレクトリに移動したら、下記コマンドを実行してLaradockをcloneしましょう。
git clone https://github.com/Laradock/laradock.git
手順3. 環境設定ファイルの作成
Laradockのcloneが完了すると、プロジェクト用ディレクトリ配下に「laradock」というディレクトリが作成されています。
「laradock」ディレクトリ内に環境設定サンプルファイル「env-example」ファイルがあるので、下記コマンドを実行して「laradock」ディレクトリに移動し、「laradock」ディレクトリ内の「env-example」ファイルを「.env」という名前でコピーし、環境設定ファイルとしましょう。
cd laradock
cp env-example .env
手順4. コンテナを起動
では、下記コマンドを実行してコンテナを起動しましょう。※初回はimageを落としてきたりするのでかなり時間がかかります。
docker-compose up -d nginx mysql phpmyadmin redis workspace
コンテナを起動したら、下記コマンドでコンテナのステータスを確認できます。
docker-compose ps
ステータスはこのように表示されると思います。
Name Command State Ports
---------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1 dockerd-entrypoint.sh Up 2375/tcp
laradock_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
laradock_nginx_1 nginx Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1 docker-php-entrypoint php-fpm Up 9000/tcp
laradock_phpmyadmin_1 /run.sh supervisord -n Up 0.0.0.0:8080->80/tcp, 9000/tcp
laradock_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
laradock_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp
手順5. 「.env」ファイルに情報を追加
「laradock」ディレクトリ配下にある「.env」を開き、下記の情報を追加して保存しましょう。
.env
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
MacのFinderから「.env」ファイルを開きたい場合、デフォルトではファイル名が「.(ドット)」から始まるファイルはFinder上に表示されないため、「⌘(command) + ⇧(shift) + .(ドット)」で「.(ドット)」から始まるファイルを表示させてから開きましょう。
「.(ドット)」から始まるファイルを非表示に戻す場合は、再度「⌘(command) + ⇧(shift) + .(ドット)」で戻すことができます。
公式では、「これで完了したので「http://localhost」にアクセスしよう。」と記載されています。
しかし、この時点で開いてもまだ404ページが開かれてしまいます。
まだ少し必要な作業が残っているので、引き続き見ていきましょう。
手順6. Laravel プロジェクトの作成
Laravelプロジェクトを作成するために、まずは下記コマンドを実行してworkspaceコンテナに入ります。
docker-compose exec --user=laradock workspace bash
composer
をroot
ユーザーで実行すると警告が表示されてしまうため、--user
オプションをlaradock
と指定してログインしています。
すると、カレントディレクトリが「/var/www」になっているはずなので、下記コマンドを実行してLaravelプロジェクトを作成しましょう。
下記コマンドの「test-app」はプロジェクト名なので、自由に変更して構いません。
# composer create-project laravel/laravel test-app
Laravelプロジェクトの作成が完了したら、下記コマンドを実行して一旦コンテナから抜けます。
# exit
手順7. アプリケーションのパスを変更
デフォルトの環境設定ファイル「.env」では、アプリケーションのパスが../
となっています。
# .env(デフォルト)
APP_CODE_PATH_HOST=../
先程「test-app」という名前のプロジェクトを作成したため、アプリケーションのパスを../test-app
と変更して保存しましょう。
# .env(変更後)
APP_CODE_PATH_HOST=../test-app
手順8. 再度コンテナを起動
では、下記コマンドを実行して再度コンテナを起動させましょう。
docker-compose up -d nginx mysql phpmyadmin redis workspace
手順9. 構成の確認
以上の手順で作業していくと、下記のようなディレクトリ構成になっているはずなので確認してみてください。
./MyProject
├── laradock
└── test-app
手順10. ブラウザで確認
では、ブラウザで「http://localhost」にアクセスしてみましょう。
Laravelの初期画面が表示されたら成功です。
また、「http://localhost:8080」にアクセスすると、phpMyAdminを開くことができます。
最後に
今回は、Docker(Laradock)を用いたLaravelの開発環境構築方法を解説しました。実際にやってみるとわかりますが、あっという間に完成してしまいます。
また、Laradockで複数のLaravel開発環境を構築し、管理する場合は、こちらの記事で紹介している方法を使用したほうが汎用性の高い環境を構築できます。こちらも合わせて見ていきましょう。
Laradock で複数の Laravel 開発環境を構築し管理する方法
\ 記事が良かったらシェア! /