PHP

Docker と Composer で Laravel 最新 PHP 環境を構築する方法

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

1. Docker + Laravel Sail の選択肢

項目 Docker Desktop (一般的な環境) Laravel Sail (プロジェクト単位)
インストール手順 GUI があるので Windows・Mac・Linux どれでも同じ流れで導入可能 composer create-project 後に自動生成される docker-compose.yml をそのまま利用
管理対象 ホスト全体の Docker エンジンを操作 プロジェクトごとに独立したコンテナ群(PHP‑FPM、Nginx、MySQL など)
初期設定の手軽さ Docker Desktop のインストールだけで完了 ./vendor/bin/sail up -d を実行すれば開発環境が起動

おすすめ
- Docker Desktop が既に入っている → そのまま使用し、必要に応じて docker compose で自前の構成を作る。
- プロジェクトごとに軽量な環境を持ちたい → Laravel Sail を選択すると、.env の設定だけで完結します。


2. PHP 8.2 と Composer を Docker に組み込む

Dockerfile(シンプル版)

この Dockerfile をプロジェクトのルートに置き、docker compose up -d(または ./vendor/bin/sail up -d)を実行すれば PHP 8.2 + Composer が同一コンテナで動作します。手動インストールやバージョン不整合の心配がなく、環境構築の手間が大幅に削減できます。


3. Laravel プロジェクトの作成と基本設定

3‑1. Composer でプロジェクトを生成

  • composer create-project は常に最新安定版(執筆時点では Laravel 10.x)を取得します。バージョン番号はハードコーディングせず、公式が提供するパッケージをそのまま利用してください。

3‑2. .env の用意とアプリキー生成

.env に記載すべき主要項目(Docker 環境向け):

APP_KEY が設定されていないと、セッションや暗号化機能が正しく動作しません。


4. 開発に役立つ Artisan コマンド

コマンド 用途
sail up -d / docker compose up -d コンテナ起動(バックグラウンド)
sail php artisan migrate データベースマイグレーション実行
sail php artisan make:model Todo -mcr モデル・マイグレーション・コントローラを同時生成
sail php artisan route:list ルーティング一覧表示
sail php artisan tinker REPL で Eloquent を試す

ポイント
- Docker 環境では必ず sail(または docker compose exec app) を経由して Artisan を実行します。ホスト上に PHP がインストールされていても、コンテナ内の環境と食い違うケースが多いためです。


5. 認証機能の導入(Breeze / Jetstream)

php artisan make:auth は Laravel 10 系では非推奨・削除されています。代わりに公式パッケージ Laravel Breeze または Jetstream を利用してください。

インストール後はマイグレーションとビルド(npm install && npm run dev)を行うだけで、ユーザー登録・ログイン画面が利用可能になります。


6. Blade テンプレートの書き方(最新版リンク)

基本レイアウト例

Todo 一覧ページ

Blade のディレクティブは @if/@foreach/@forelse などが豊富で、ロジックとビューをシンプルに分離できます。


7. データベース設定と Eloquent による CRUD

Docker Compose に MySQL を追加

.envDB_HOST=db と合わせれば、コンテナ間の名前解決で自動的に接続できます。

Eloquent 基本操作例(Todo モデル)

コントローラでの使用例

$fillable に列挙したカラムだけが Mass Assignment できるため、セキュリティ上安全です。


8. デバッグ・プロファイリングツール

パッケージ 主な機能
Laravel Telescope リクエスト・例外・SQL・キューの詳細を UI で確認
barryvdh/laravel-debugbar ページ下部にデバッグバーを表示し、実行時間やメモリ使用量が一目で分かる

インストール手順(開発環境のみ)

インストール後、APP_ENV=local の状態であれば自動的に UI が有効化されます。


9. テスト駆動開発(PHPUnit)と CI/CD 入門

基本テスト例

GitHub Actions で自動テストを走らせるサンプル

CI が通れば、プルリクエスト時に自動でテストが走り、品質を保てます。


10. デプロイまでの流れと次の学習ステップ

フェーズ 主な作業
ローカル Docker + Sail で開発・テスト
ステージング 同一 Docker イメージを GitHub Packages または Docker Hub にプッシュし、EC2/Lightsail 等にデプロイ
本番 環境変数だけ切り替えて php artisan migrate --force を実行。Zero‑downtime デプロイには Laravel Forge や Envoy が便利

次に学ぶべきトピック

  1. 認証・認可の高度化 – Laravel Breeze/Jetstream に加え、Laravel Sanctum(SPA / API)や Laravel Fortify の活用。
  2. キューとイベントphp artisan queue:work と Redis で非同期処理を実装し、スケーラビリティを向上させる。
  3. API 開発 – Laravel Sanctum + Laravel Resource を組み合わせたシンプルな JSON API の作り方。
  4. パフォーマンス最適化 – キャッシュ(Redis / Memcached)や Eager Loading、クエリログの分析手法。

参考リンク集(最新版)

項目 URL
Laravel 公式ドキュメント(10.x) https://laravel.com/docs/10.x
Blade テンプレートガイド(10.x) https://laravel.com/docs/10.x/blade
Laravel Sail 公式ページ https://laravel.com/docs/10.x/sail
Docker Desktop ダウンロード https://www.docker.com/products/docker-desktop
Laravel Telescope https://github.com/laravel/telescope
Laravel Debugbar https://github.com/barryvdh/laravel-debugbar

まとめ

  • Docker + Sail により OS 非依存の統一環境が手軽に構築でき、docker compose up -d だけで PHP 8.2 と Composer が利用可能になる。
  • Laravel プロジェクトは Composer の create-project コマンドで最新バージョンを取得し、.env とキー生成だけで即座に開発開始できる。
  • 認証は Breeze/Jetstream を導入すれば、非推奨コマンドに依存せずモダンな UI が手に入る。
  • Blade の最新版ドキュメントリンクとデバッグツール(Telescope・Debugbar)を活用し、開発効率と品質を高めよう。
  • テスト自動化と CI/CD を組み込むことで、本番環境への安全なデプロイが実現できる。

これらの手順とベストプラクティスに沿って構築すれば、Docker 上で快適かつ再現性の高い Laravel 開発環境が完成します。次は 認証・キュー・API といった本格的な機能へステップアップしてください。

スポンサードリンク

-PHP
-, , , , , , , ,