Laravel

Laravel SailでDocker環境構築|2025年最新手順

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

スポンサードリンク

Laravel SailによるDocker環境構築の意義と実践ガイド

Laravel Sailは、ローカル開発環境を手軽に構築できるDockerベースのソリューションとして注目されています。Laravel 10対応により、安定した運用が可能となり、WSL2との連携もスムーズに実現できます。特にWindowsユーザーにとって、WSL2を活用することでLinux環境と同等のパフォーマンスを得られることから、開発効率の向上が期待されます。以下では、各OSに合わせたDockerの導入手順やSailの特徴を解説します。


Docker EngineとDocker Composeのインストール確認手順

Laravel SailはDocker EngineとDocker Composeに依存するため、環境構築前に正しいバージョンが導入されているかを確認することが不可欠です。以下に、各OS別のインストール方法と確認手順を紹介します。

共通の確認手順

Docker EngineとDocker Composeのバージョンは、どのOSでも以下のコマンドで確認できます。

注意: Docker Desktop for Mac/Windowsではdocker-composeが自動インストールされるため、別途手動インストールは不要です。Linux環境ではパッケージ管理を活用する必要があります。


macOS用Homebrewインストール

macOSでは公式のDocker Desktop for Macを使用するのが最も簡単です。以下のコマンドでバージョンを確認できます。

  1. Terminalを開き、以下を実行:
    bash
    docker --version
    docker-compose --version

  2. Docker Desktopがインストールされている場合、dockerdocker-composeのバージョンが表示されます。最新版であれば、Laravel Sailの互換性に問題はありません。


Linux(Ubuntu)のapt管理

Ubuntuユーザーはパッケージマネージャーを使用してDockerを導入します。以下のコマンドでインストールと確認を行います。

  1. Docker Engineをインストール:
    bash
    sudo apt update && sudo apt install docker.io

  2. Docker Composeは別途インストールが必要です。以下を実行:
    bash
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose

  3. 以下のコマンドでバージョンを確認:
    bash
    docker --version
    docker-compose --version


Windows(WSL2)でのdockerdesktop設定

WindowsではWSL2環境とDocker Desktop for Windowsを連携させる必要があります。

  1. Docker Desktopを公式サイトからインストールし、WSL2の有効化を確認します。
  2. WSL2でwsl.exe --list --verboseを実行し、WSL2が有効になっていることを確認します。
  3. Terminalで以下を実行:
    bash
    docker --version
    docker-compose --version

  4. Docker Desktopの設定画面でWSL2をデフォルトに指定することで、Linuxコマンドでの利用が可能になります。


Laravelプロジェクト作成時のSail自動有効化設定

Laravel Sailは新規プロジェクト生成時に自動で有効化される仕組みがあります。以下のように手順を踏むことで、すぐにDocker環境を使用できます。

新規プロジェクト生成時のオプション

Laravelではcomposer create-projectコマンドに--with=sailオプションを付けることでSailが自動で導入されます。

補足: --with=sailは、プロジェクト生成時にLaravel Sailパッケージとdocker-compose.ymlファイルを同時にインストールするオプションです。これにより、すぐにDocker環境を構築できます。


既存プロジェクトへのSail導入

既存のLaravelプロジェクトにSailを追加するには、以下のコマンドを使用します:

注意: artisanコマンドが実行されると、Docker ComposeファイルとSailスクリプトが自動生成されます。その後は./sail upでサービスを起動できます。


docker-compose.ymlファイルの構造とカスタマイズ

Laravel Sailではdocker-compose.ymlファイルでコンテナの設定を行います。以下の例では、MySQLやRedisなど各サービスの定義と、環境変数の上書き方法を解説します。

サービス定義の基本構成

以下は標準的なdocker-compose.ymlの一部です:

プロパティ 説明
services 実行するコンテナサービス(MySQL、PHP、Redisなど)
ports ローカルとコンテナ間でマッピングするポート
volumes コンテナ内のデータをホストに永続化する設定

このファイルはdocker-compose up時に自動読み込まれるため、カスタマイズは必要最小限で可能です。


環境変数の上書き方法

環境変数をカスタムしたい場合は.envファイルを使用します。たとえばMySQLのデータベース名やユーザー情報を変更するには以下のように記述します:

補足: .envファイルはLaravelで環境ごとの設定を管理するためのファイルです。この中に定義された変数は、アプリケーション内やコンテナ内で参照されます。


サービス起動後の接続方法とアクセス手順

Docker環境を起動後は、Webブラウザやコンテナ内部からアプリケーションにアクセスできます。以下に具体的な手順を示します。

ブラウザでのアプリ起動

  1. docker-compose upまたはsail upでサービスを起動します。
  2. Webブラウザを開き、ローカルホストの8000ポート(http://localhost:8000)にアクセスします。

Laravelの初期画面が表示されれば、環境構築は成功です。


コンテナ内部からの接続確認

コンテナ内にSSHでアクセスするには、以下のコマンドを使用します:

このコマンドでPHPやMySQLのコンテナに接続でき、ログ確認や手動でのCLI操作が可能です。


よくあるエラーの特定と解決策

Laravel Sailの導入・運用ではいくつかの典型的なエラーが発生します。以下に代表的な対応法を紹介します。

ポート競合時の対処

エラーメッセージ例: Address already in use
ポート8000や3306などの既存サービスと競合している可能性があります。以下のコマンドで使用中のポートを確認し、必要に応じてdocker-compose.ymlのポート設定を変更してください:


イメージPull失敗時のキャッシュクリア

エラーメッセージ例: Error response from daemon: invalid argument
イメージのプルに失敗する場合は、Dockerのキャッシュをクリアし、再試行してください。

WSL2ではネットワーク設定ミスも原因となるため、wsl --shutdownと再度起動することもあります。


まとめ

本記事では、Laravel 10対応のSailによるDocker環境構築手順をステップバイステップで解説しました。以下が主要なポイントです:

  • Laravel 10とWSL2との連携により、クロスプラットフォームでの開発効率化が可能
  • Docker EngineとDocker Composeのインストール確認は各OSに合わせて行うことが必須
  • composer create-project --with=sailでSailを自動有効化し、簡易な構築が可能
  • docker-compose.ymlファイルのカスタマイズにより、環境変数やサービス定義の柔軟な調整が可能
  • エラー対処としてポート競合・イメージPull失敗時の解決策を解説

記事を参考にLaravel Sail環境を構築し、ローカル開発の効率化を実感してください。

スポンサードリンク

-Laravel