Laradock(Docker)を使ってLaravel開発環境を構築する方法【環境構築】

みなさんはLaravelの開発環境を構築する際にどのような方法で環境構築を行なっていますか?

PHPで開発を行う際は、XAMPPを使ったりすることも多いのではないでしょうか?

または、Vagrantを使って開発環境の構築するというのもありますね。

ですが、実際の現場で使われているのはDockerを用いた環境構築だと考えています。

実際に、私はいくつかのLaravel開発案件に携わってきましたが、全てDockerを使った開発環境でした。

そこで今回は、PHP開発向けに構築されたDocker環境であるLaradockを使って環境構築を行う方法を紹介していきたいと思います。

目次

Laradockとは

LaradockとはPHP開発向けに構築されたDocker環境であるため、Laradockを使うことでLaravelの開発環境が簡単に構築することができます。

そのため、Dockerに関する知識やインフラの知識が比較的少ない状態でも手軽に環境構築を行い、Webアプリケーションの開発に集中することができます。

個人でポートフォリオなどの開発を行う際にはうってつけの手段ではないでしょうか?

Laradockを使って、Laravel開発環境構築

それでは早速Laradockを使って、Laravelの開発環境を構築していきましょう。

なお、この記事で説明している内容はmacOSのIntel Core i5での動作確認を行なっております。Windowsでの動作確認は行なっておりませんので、ご了承ください。

Laradock公式サイト

事前準備

まずはプロジェクトのディレクトを作成し、Laradockのリポジトリをcloneしていきましょう。

LaradockのGitHubリポジトリ

mkdir sample-project
cd sample-project
git clone https://github.com/Laradock/laradock.git

cloneに成功すると、プロジェクトのディレクトリ直下にlaradockディレクトリが配置されます。

また、プロジェクトのディレクトリ直下にLaravelのプロジェクトを格納するためのディレクトリを作成しておきましょう。

mkdir src

Laradockの設定ファイルを編集

laradockディレクトリに移動し、.envファイルを作成しましょう。

.envファイルを作成する際は、雛形である.env.exampleファイルから複製します。

cd laradock
cp .env.example .env

APP_CODE_PATH_HOST

Laravelプロジェクトの格納場所を指定します。

ここでは前述で作成したsrcディレクトリを指定しましょう。

APP_CODE_PATH_HOST=../src/

DATA_PATH_HOST

プロジェクトのデータ管理場所を指定します。

デフォルトの状態だと、複数プロジェクトを作成した際に同じデータを参照することになるので、管理が複雑になってしまいます。

複数プロジェクト作成した際にも対応できるように、それぞれ個別でデータ管理を行うようにデータ管理場所を指定してあげましょう。

DATA_PATH_HOST=../.laradock/data

COMPOSER_PROJECT_NAME

プロジェクトのdockerコンテナ名を指定します。

分かりやすいようにプロジェクトのディレクトリ名と同じものを指定しています。

COMPOSER_PROJECT_NAME=sample-project

PHP_VERSION

PHPのバージョンを指定します。

PHP_VERSION=7.4

MYSQL_VERSION

MySQLのバージョンを指定します。

MYSQL_VERSION=5.7

MYSQL_DATABASE

MySQLで作成するデータベース名を指定します。

MYSQL_DATABASE=testdb

MYSQL_USER

MySQLのユーザーを指定します。

MYSQL_USER=testuser

MYSQL_PASSWORD

MySQLユーザーのパスワードを指定します。

MYSQL_PASSWORD=password

最終的に.envファイルは下記のように変更しています。

APP_CODE_PATH_HOST=../src/
DATA_PATH_HOST=../.laradock/data
COMPOSER_PROJECT_NAME=sample-project

PHP_VERSION=7.4

MYSQL_VERSION=5.7
MYSQL_DATABASE=testdb
MYSQL_USER=testuser
MYSQL_PASSWORD=password

Dockerコンテナの起動

docker-compose upコマンドでコンテナを起動します。

また、-dオプションを指定することで、バックグラウンドでコンテナを起動することができます。

初回はビルドから始まるため、少し時間がかかります。

docker-compose up -d nginx mysql phpmyadmin mailhog

起動が完了したら、下記コマンドで起動中のコンテナ名を確認しましょう。

docker ps --format "table {{.Names}}"

NAMES
sample-project_nginx_1
sample-project_php-fpm_1
sample-project_workspace_1
sample-project_phpmyadmin_1
sample-project_mysql_1
sample-project_mailhog_1
sample-project_docker-in-docker_1

下記7つのコンテナが起動していることが確認できます。

  • nginx
  • php-fpm
  • workspace
  • phpmyadmin
  • mysql
  • mailhog
  • docker-in-docker

Laravelのインストール

workspaceコンテナにアクセスし、Laravelをインストールしていきます。

デフォルト状態ではrootユーザーでアクセスすることになるため、--user=laradockオプションをつけてlaradockユーザーでアクセスしましょう。

laradockユーザーでLaravelのインストールを行わないとパーミッションエラーとなることがあるので、laradockユーザーでアクセスするようにしましょう。

docker-compose exec --user=laradock workspace bash
$ composer create-project --prefer-dist "laravel/laravel=7.*" ./
$ exit

「Application key set successfully.」と表示されれば、無事にLaravelプロジェクトのインストールが完了しています。

念の為ため、lsコマンドで中身を確認すると良いでしょう。

Laravelの設定ファイルを編集

Laravelの設定ファイルである.envファイルを編集していきましょう。

Laradockで設定した情報を反映していきます。

DB_HOST=mysql
DB_DATABASE=testdb
DB_USERNAME=testuser
DB_PASSWORD=password

以上でLaradockを使った環境構築が完了しました。

では、ブラウザで確認していきましょう。

ブラウザで確認

Laravel

http://localhostでLaravelの初期画面を確認することができます。

phpMyAdmin

phpMyAdminは8081番ポートに設定されているので、http://localhost:8081で確認することができます。

phpMyAdminのログイン画面が表示されるので、Laradockの.envファイルで設定した情報でアクセスすることができます。

  • サーバ:mysql
  • ユーザー名:MYSQL_USERの値
  • パスワード:MYSQL_PASSWORDの値

MailHog

MailHogは8025番ポートに設定されているので、http://localhost:8025で確認することができます。

無事に環境構築できていることが確認できました。

開発終了時には下記コマンドでDockerコンテナを停止しておきましょう。

docker-compose stop

まとめ

Laradockを使ったLaravelの開発環境構築の方法を紹介してきました。

Dockerの知識が少ない方でも理解しながら環境構築ができたのではないでしょうか?

もちろん実務や本番環境を構築する際にはもっとDockerやインフラの知識が必要だと考えています。

しかし、冒頭にも述べたように個人開発などの際にサッとお手軽に開発環境を構築するにはとてもいい手段だと思います。

ぜひ、皆さんの開発環境構築の手助けになれば嬉しいです。

プログラミングスクールをお探しの方はこちら

フリーランス案件をお探しの方はこちら

エンジニア転職サイトをお探しの方はこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次
閉じる