章: 第3章: PHP/Laravel運用連携
「環境構築で1日潰した」をなくすために
Laravelプロジェクトに新メンバーが参加するとき、環境構築だけで1日以上かかることは珍しくありません。PHPのバージョン、Composerのバージョン、MySQL設定……手順書が古くなっていることも多く、試行錯誤が続きます。
DockerでLaravel環境をCompose化することで、docker compose up -d 1コマンドで誰でも同じ環境を立ち上げられるようになります。
Laravelに必要なサービス構成を整理する
Laravelを動かすには最低限以下が必要です。
| サービス | 役割 | 最小構成での代替 |
| Webサーバ (nginx) | HTTPリクエストを捌く | php artisan serve(開発用) |
| PHP-FPM | PHPを実行 | php artisan serve に含む |
| MySQL | データベース | 必須 |
| Redis | セッション・キャッシュ | 初期は省略可 |
チェックポイント: 最初はnginxなしで
php artisan serveを使う構成から始めましょう。シンプルな構成で動作を確認してから、本番に近い nginx+PHP-FPM 構成に移行するのがつまずきにくい順番です。
実際のCompose構成サンプル
services:
app:
build: .
volumes:
- ./:/var/www/html
command: php artisan serve --host=0.0.0.0 --port=8000
ports:
- "8000:8000"
db:
image: mysql:8.4
environment:
MYSQL_DATABASE: laravel
MYSQL_ROOT_PASSWORD: secret
LaravelのDockerfileには pdo_mysql のインストールと composer install の実行を含めます。.env の DB_HOST は db(サービス名)に設定します。
まとめ & 次のステップ
- まずは
php artisan serve+ MySQL のシンプル構成から始める DB_HOST=dbなど Laravelの.env設定をComposeのサービス名に合わせる- Dockerfileに
composer installを含めてビルド時に依存関係を解決する - 動作確認後、nginx+PHP-FPM+Redis の本番近似構成に段階的に移行する
次回は「本番運用チェックリスト(Docker版)」を学びます。Docker環境で本番リリースする前に確認すべき観点を整理し、事故を未然に防ぎます。