第11回: DockerでLaravelを動かす基礎 — 新メンバーが即日開発参加できる環境を作る

章: 第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 の実行を含めます。.envDB_HOSTdb(サービス名)に設定します。

まとめ & 次のステップ

  • まずは php artisan serve + MySQL のシンプル構成から始める
  • DB_HOST=db など Laravelの .env 設定をComposeのサービス名に合わせる
  • Dockerfileに composer install を含めてビルド時に依存関係を解決する
  • 動作確認後、nginx+PHP-FPM+Redis の本番近似構成に段階的に移行する

次回は「本番運用チェックリスト(Docker版)」を学びます。Docker環境で本番リリースする前に確認すべき観点を整理し、事故を未然に防ぎます。

Related Articles