PHPフレームワーク「Laradock」で、手軽にLaravel+Dockerな開発環境を構築する

PHPフレームワーク「Laradock」で、手軽にLaravel+Dockerな開発環境を構築する

エリカ

エリカ

こんにちは、エリカです。

今回は、PHP フレームワーク「 Laravel 」を利用するための環境を構築したいと思います。Laravelでは PHP の組み込み開発サーバを手軽に使用することもできますし、Vagrant を利用した” Laravel Homestead “、PHP とデータベースサーバを直接ローカルマシンにインストールして利用する” Valet “と、さまざまな選択肢が用意されています。仮想化という観点からですと、Vagrant を普段使いされている方には” Laravel Homestead “を利用するのがもっともカンタンです。

上記の 3 つについては公式のドキュメントにすべて記載されてありますが、” Docker “を利用した方法については まだ記載がありません。

そこで今回は、Laradock を使って、” Docker + Laravel “な開発環境の構築方法についてご紹介したいと思います。

 

必要なもの

  • Git
  • Docker
  • Node(フロントエンドのビルドも行う場合)

 

作業ディレクトリの用意

まず任意のディレクトリを作成し、そこに” Laradock “を配置することにします。 最終的に下記のような構成にしていきます。

/MyProject
├── laradock
└── src ... (ここにLaravelが配置される)

 

まずはメインのディレクトリを作成します。

$ mkdir MyProject && cd MyProject

Laradock をサブモジュールとして扱うために、git を利用できるようしておきます。

$ git init

次に” Laravel “が配置されるディレクトリを用意しておきます。

$ mkdir src

ここまでできたら” Laradock “を準備します。

 

Laradockの準備

” Laradock “をサブモジュールとしてクローンします。

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

これで、先ほどのディレクトリ構成と同じ状態になります。

/MyProject
├── laradock
└── src

 

Laravelのインストール先の指定

クローンした laradock ディレクトリに入ります。

$ cd laradock

環境設定サンプルファイルから環境設定ファイルを作成します。

$ cp env-sample .env

.env ファイルを編集します。

############################
# General Setup
############################

### Application Path
# Point to your application code, will be available at `/var/www`.

APPLICATION=../src/

APPLICATION に、先ほど作成した src ディレクトリを” Laravel “のインストール先に指定しておきます。

 

Dockerコンテナの起動

Nginx と MySQL コンテナを起動します。

$ docker-compose up -d nginx mysql

問題なく起動したら http://localhost へアクセスします。

まだ Nginx の 404 ページが表示されていますが、ここに” Laravel “がインストールされることになります。

 

Workspaceコンテナへの接続

起動しているコンテナを確認します。

$ docker ps

nginxコンテナが依存する形で workspace というコンテナが起動しているはずです。

もし起動していなければ、直接起動します。

$ docker-compose up -d workspace

workspaceコンテナに接続します。

$ docker-compose exec workspace bash

workspace コンテナでは composer をはじめ、開発に必要な多くのコマンドが利用できる状態になっています。

 

Laravelのインストール

カレントディレクトリが (/var/www) になっているはずなので、そこで composer を使って laravel をインストールします。

$ composer create-project --prefer-dist laravel/laravel ./

再度、http://localhostへアクセスし、Laravelの初期ページが表示されていれば成功です。 

この時点で、大元の src ディレクトリ以下に laravel がインストールされているのが確認できるかと思います。 ちなみに、先ほどのページは src/public/index.php が呼び出されたことによって表示されています。これは、nginx のルートディレクトリが /var/www/public にあらかじめ設定されているためです。

 

MySQLへの接続設定

次に MySQL へ接続できるようにしておきます。

src/.env の接頭辞が DB_ の部分を編集します。これらは、laradock/.env に記述されているそれぞれの値に合わせる形になります。

src/.env (変更前)

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
src/.env (変更後)

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

 

PhpMyAdminへの接続

お好きなクライアントソフトから接続できますし、PhpMyAdmin の用意もカンタンです。

laradock ディレクトリから phpmyadmin コンテナを起動します。

$ docker-compose up -d phpmyadmin

起動したら、http://localhost:8080 へアクセスします。

この接続情報やポート番号もすべて laradock/.env に記載されています。

 

artisanコマンドを使う

artisan コマンドを使って、” Laravel “がデータベースへ接続できるか確認してみます。

再び workspaceコンテナに入り、artisan コマンドを叩きます。

$ docker-compose exec workspace bash

Laravel には、認証用にデフォルトでテーブル定義が用意されていますので、それを作成してみます。

$ php artisan migrate

データベースへの接続が問題なければ、マイグレーション情報を格納する migrations テーブルをはじめ、いくつかのテーブルが作成されているのが確認できると思います。

 

Frontendのビルド環境の準備

これは” Docker “および” Laradock “とは直接関係ありませんが、” Laravel “の開発環境という意味で、フロントエンドのビルドもできるようにしておきます。

まずは、src/ ディレクトリで、必要なパッケージをインストールします。

$ npm install

ビルドに必要な各種パッケージがインストールされたかと思います。

 

ビルドの実行

$ npm run watch

必要なパッケージのインストールが行われていれば、css および js のビルドが行われます。

初期状態であれば、src/resources/assets の内容がビルドされ、src/public/ 以下に配置されていきます。

以上です。

 

まとめ

これで、フロントエンドも含めた” Docker + Laravel “な環境が準備できました。

” Laradock “、素晴らしいです。

 

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

ディレクターのエリカです。趣味は美術鑑賞で、絵画や展示などたくさんの作品を眺めるのが好きです。得意料理は「鍋」です。よろしくお願いします。

このメンバーの記事をもっと読む
バックエンドへの道 | 58 articles
デザイン力×グローバルな開発体制でDXをトータル支援
お問い合わせ 会社概要DL