Contents
Laravel と Docker の PHP 開発環境構築 手順
Laravel と Docker を組み合わせたローカル開発環境の構築は、安定性と再現性を高めるために多くの開発者に推奨されています。本記事では、Docker ComposeとLaravel Sailの両方を活用した手順を解説します。
Docker Compose は複数コンテナの管理が可能で、Sail は Laravel 公式で提供される簡易構築ツールです。どちらも用途に応じて使い分けることで、開発効率を飛躍的に向上させられます。
Docker の事前インストール確認手順
ローカル環境構築の第一歩は、Docker が正しく動作しているかを確認することです。特に OS 別のインストール方法 を理解しておく必要があります。
Docker Desktop のインストール確認
- Windows/macOS: Docker Desktop公式サイトよりインストール
- Linux: パッケージマネージャー(例:
sudo apt install docker.io)で導入し、sudo systemctl start dockerでサービスを起動
確認コマンドを実行し、バージョンが表示されるか確認してください。
|
1 2 3 4 5 |
docker --version # 例: Docker version 26.1.3, build 9854c5a docker-compose version # 例: docker-compose version 2.28.1, build 73b96e0 |
docker-compose.yml ファイルの作成方法
docker-compose.ymlはDockerの定義ファイルで、各サービス(Nginx/PHP/MySQLなど)を一括管理します。基本構造と設定方法を解説します。
基本構造の理解
YAMLファイルには以下の要素が含まれます:
| 項目 | 説明 |
|---|---|
services |
実行するコンテナサービスの一覧 |
image |
使用するDockerイメージ |
ports |
ホストとコンテナのポートマッピング |
volumes |
ボリューム(データ永続化) |
以下はテンプレート例です:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
version: '3.8' services: nginx: image: nginx:latest ports: - "80:80" volumes: - ./public:/var/www/html php: image: php:8.2-fpm ports: - "9000:9000" # ポート衝突を避けるため別のポートを使用 volumes: - ./:/var/www/html db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: secret volumes: - ./mysql_data:/var/lib/mysql |
Nginx・PHP・MySQL のサービス設定
各コンテナイメージの選定とデータ永続化を設定します。公式イメージを使うことで安定性が確保できます。
各コンテナイメージの選定
- Nginx:
nginx:latest(最新版) - PHP:
php:8.2-fpm(Laravel 10以降対応) - MySQL:
mysql:8.0(MariaDBも可)
データ永続化設定(ボリューム)
データベースの設定ファイルやアップロードファイルを永続化するには、ボリューム設定が必要です。例:
|
1 2 3 |
volumes: - ./mysql_data:/var/lib/mysql |
.envファイルで環境変数を管理し、コンテナ起動時に自動読み込みします。
Laravelプロジェクトの初期化手順
Laravel プロジェクトを新規作成するか、既存プロジェクトを取得して構築します。
Composerによる新規作成
|
1 2 3 |
composer create-project laravel/laravel my-app cd my-app |
構築済みプロジェクトの取得
Git でリポジトリをクローンした場合、以下の手順が必要です:
|
1 2 3 4 5 |
git clone https://github.com/example/project.git cd project composer install npm install |
コンテナ間接続設定(環境変数含む)
コンテナ同士の通信やデータベース接続には環境変数を活用します。
.envファイルの編集手順
.envで以下のようにデータベース情報を設定します:
|
1 2 3 4 5 |
DB_CONNECTION=mysql DB_HOST=db # Docker Compose環境ではサービス名(db)を使用する必要がある DB_PORT=3306 DB_DATABASE=my_app |
データベース接続設定の確認
Docker Compose はデフォルトで db サービス名を認識するため、.envに DB_HOST=db と指定することで接続が可能になります。
注意: MySQLサービスが
docker-compose.ymlに含まれていない場合、通信エラーが発生します。
Sailによる簡易構築方法
Laravel Sailは一括起動コマンドでコンテナ環境を構築できるツールです。手軽さが魅力です。
Sailのインストール手順
プロジェクトディレクトリに移動し、以下を実行:
|
1 2 3 |
composer require laravel/sail --dev php artisan sail:install |
docker-compose.ymlファイルが自動生成されます。カスタマイズする場合は、生成後の設定変更が必要です(例:ポートマッピング調整)。
一括起動コマンドの実行
|
1 2 |
./vendor/bin/sail up -d |
これでNginx、PHP、MySQLが同時に起動します。環境変数は.envを参照します。
まとめ
本記事では Laravel と Docker のローカル開発環境構築手順を解説しました。以下がポイントです:
- Docker Compose で詳細設定が可能、
- Sail を利用すれば迅速に環境を整えられる、
- .envファイルでの環境変数管理とボリューム設定は安定性の鍵、
Linuxユーザーの場合、sudoコマンドや権限設定が必要な場合があります(例:Dockerサービス起動)。
記事を参考にローカル環境構築を開始してください。