Laravel

Laravel SailでDocker環境構築:macOS/Linux対応手順

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

スポンサードリンク

Laravel SailでDocker環境を構築する前に確認すること

Laravel SailによるDocker環境の構築は、開発効率を飛躍的に向上させる方法ですが、準備不足ではエラーが発生しやすいです。特にmacOS/Linux環境での前提ソフトウェアのインストールやバージョン確認が不可欠です。最新版に合わせて設定を行うことで、スムーズな構築が可能になります。

macOS/Linuxでの前提ソフトウェアのインストール手順

Laravel Sailを活用するには、まずDocker EngineとDocker Composeの導入が必要です。macOSではDocker Desktop for Macを公式サイトからダウンロードし、Linuxユーザーはパッケージマネージャー(例: apt, yum)でインストールします。

重要: 現在のDocker Composeバージョンは2023年時点ではv2.x~v3.8程度であり、「2026年最新版のDocker Compose v3.9」の記述は現実的でありません。最新版に対応する場合は、公式ドキュメントを参照してください。

  • macOSの場合
  • Docker Desktop for Macのインストール後に「Docker Desktop」アプリを起動
  • 「Preferences」→「Resources」→「File Sharing」にプロジェクトフォルダを追加

  • Linux(Ubuntu例)の場合
    bash
    sudo apt update
    sudo apt install docker.io docker-compose


Laravelプロジェクトの初期化とSail設定ファイル生成

Laravel Sailは、Docker環境を簡単に構築できるツールですが、事前にLaravelプロジェクトを作成し、sail:installコマンドで設定ファイルを準備する必要があります。この手順をしっかり行うことで、後続の構築工程がスムーズになります。

Laravelプロジェクトの初期化方法

新規プロジェクト作成には「laravel new」コマンドが使われますが、実際にはcomposer create-projectが標準的な手段です。以下に手順を示します。

  1. プロジェクトフォルダを作成(例: my-project
  2. Composer経由で新規プロジェクトを生成
    bash
    composer create-project laravel/laravel my-project --prefer-dist

  3. 作業ディレクトリに移動
    bash
    cd my-project

注意: laravel newコマンドは非公式ツールであり、composer create-projectが公式で推奨されています。

sail:installコマンドによる設定ファイル自動生成

プロジェクト初期化後は、Sailの設定ファイルを生成します。

  1. 下記コマンドでSailを導入
    bash
    composer require laravel/sail --dev

  2. 設定ファイルを自動生成
    bash
    php artisan sail:install

この手順でdocker-compose.yml.envファイルが作成され、Docker環境構築に必要な設定が整います。


Dockerコンテナの起動とサービス確認プロセス

Laravel Sailを使用してDockerコンテナを起動する際は、正しいオプションで実行することで、Webサーバー・データベースなど各サービスの状態を確認できます。この手順を疎かにすると、アクセスエラーや接続失敗が発生します。

sail upコマンド実行時のオプション引数

Dockerコンテナを起動するには「sail up」コマンドを使います。

  • -d はバックグラウンドで起動させるオプション
  • 起動中にエラーがあれば、ログを確認して原因を特定

コンテナ起動後のポート接続確認方法

コンテナが正常に起動したら、以下のコマンドで各サービスの状態を確認します。

サービス名 ポート 状態
Nginx 80, 443 実行中
MySQL 3306 実行中
Mailhog 1025 実行中
  • Webブラウザでhttp://localhostにアクセスし、Laravelの初期画面が表示されるかを確認

MySQL/MariaDBバージョン指定と.envファイル編集

Docker環境では.envファイルを通じてMySQLやMariaDBのバージョンを指定できます。この設定により、開発環境と本番環境でデータベースの仕様を統一しやすくなります。

.envファイルでのデータベースバージョン設定

.envファイルに以下のように設定することで、MySQLやMariaDBのバージョンをカスタマイズできます。

  • DB_HOSTはDockerコンテナ内の「db」という名前のコンテナに接続
  • DB_PORTはMySQLのデフォルトポート(3306)

コンテナ再構築時のバージョン反映方法

.envファイルを編集後、以下コマンドでコンテナを再構築します。

これにより、新しい設定が反映され、データベースのバージョン変更などが実施されます。


ローカル環境でのHTTPS設定手順

Laravel SailではTraefikというコンテナを使用してローカルでHTTPSを構築できます。Docker Compose v3.8(現行版)に対応した設定により、証明書の自動生成が可能になります。

Traefikのコンテナ構成確認

docker-compose.ymlファイルにTraefikのコンテナ定義があることを確認してください。

  • v3.1.0 を指定することで、最新版のTraefikが利用可能

    注意: 2023年時点でTraefik v3.9は存在せず、v3.1.0〜が最新です。

証明書自動生成設定ファイル編集

TraefikでHTTPSを構築するには、./traefik/traefik.ymlに以下のように記述します。

  • certResolver: le でLet's Encryptの証明書自動生成を有効化
  • ブラウザでhttps://localhostにアクセスすると、自動的に証明書が発行されます

完成後の環境チェックと構築完了の宣言

Laravel Sailを使用してDocker環境を構築した後は、ブラウザからアプリケーションにアクセスし、すべてのサービスが正常に動作しているか確認します。この段階でエラーがない場合、「構築完了」とコメント欄に投稿してください。

ブラウザでのアクセステスト手順

  1. Webブラウザを開き、http://localhostにアクセス
  2. Laravelの初期画面が表示されればOK
  3. HTTPS環境をテストする場合はhttps://localhostで確認

まとめ

本記事では、Laravel SailによるDocker環境構築の手順をステップバイステップで解説しました。重点的に以下の項目を取り上げました:

  • macOS/Linuxでの前提ソフトウェアのインストール
  • Laravelプロジェクト初期化とSail設定ファイル生成
  • Dockerコンテナの起動とサービス確認
  • MySQL/MariaDBバージョン指定
  • ローカル環境でのHTTPS構築

以上を実施した場合は、コメント欄に「構築完了」と投稿してください。


スポンサードリンク

-Laravel