Contents
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が標準的な手段です。以下に手順を示します。
- プロジェクトフォルダを作成(例:
my-project) -
Composer経由で新規プロジェクトを生成
bash
composer create-project laravel/laravel my-project --prefer-dist -
作業ディレクトリに移動
bash
cd my-project
注意:
laravel newコマンドは非公式ツールであり、composer create-projectが公式で推奨されています。
sail:installコマンドによる設定ファイル自動生成
プロジェクト初期化後は、Sailの設定ファイルを生成します。
-
下記コマンドでSailを導入
bash
composer require laravel/sail --dev -
設定ファイルを自動生成
bash
php artisan sail:install
この手順でdocker-compose.ymlや.envファイルが作成され、Docker環境構築に必要な設定が整います。
Dockerコンテナの起動とサービス確認プロセス
Laravel Sailを使用してDockerコンテナを起動する際は、正しいオプションで実行することで、Webサーバー・データベースなど各サービスの状態を確認できます。この手順を疎かにすると、アクセスエラーや接続失敗が発生します。
sail upコマンド実行時のオプション引数
Dockerコンテナを起動するには「sail up」コマンドを使います。
|
1 2 |
./vendor/bin/sail up -d |
-dはバックグラウンドで起動させるオプション- 起動中にエラーがあれば、ログを確認して原因を特定
コンテナ起動後のポート接続確認方法
コンテナが正常に起動したら、以下のコマンドで各サービスの状態を確認します。
|
1 2 |
docker ps |
| サービス名 | ポート | 状態 |
|---|---|---|
| Nginx | 80, 443 | 実行中 |
| MySQL | 3306 | 実行中 |
| Mailhog | 1025 | 実行中 |
- Webブラウザで
http://localhostにアクセスし、Laravelの初期画面が表示されるかを確認
MySQL/MariaDBバージョン指定と.envファイル編集
Docker環境では.envファイルを通じてMySQLやMariaDBのバージョンを指定できます。この設定により、開発環境と本番環境でデータベースの仕様を統一しやすくなります。
.envファイルでのデータベースバージョン設定
.envファイルに以下のように設定することで、MySQLやMariaDBのバージョンをカスタマイズできます。
|
1 2 3 4 5 6 7 |
DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=myapp DB_USERNAME=root DB_PASSWORD=password |
DB_HOSTはDockerコンテナ内の「db」という名前のコンテナに接続DB_PORTはMySQLのデフォルトポート(3306)
コンテナ再構築時のバージョン反映方法
.envファイルを編集後、以下コマンドでコンテナを再構築します。
|
1 2 3 |
./vendor/bin/sail down ./vendor/bin/sail up -d |
これにより、新しい設定が反映され、データベースのバージョン変更などが実施されます。
ローカル環境でのHTTPS設定手順
Laravel SailではTraefikというコンテナを使用してローカルでHTTPSを構築できます。Docker Compose v3.8(現行版)に対応した設定により、証明書の自動生成が可能になります。
Traefikのコンテナ構成確認
docker-compose.ymlファイルにTraefikのコンテナ定義があることを確認してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
services: traefik: image: traefik:v3.1.0 ports: - "80:80" - "443:443" volumes: - ./traefik:/etc/traefik command: - --providers.docker - --entrypoints.web.Address=:80 - --entrypoints.websecure.Address=:443 |
v3.1.0を指定することで、最新版のTraefikが利用可能
注意: 2023年時点でTraefik v3.9は存在せず、v3.1.0〜が最新です。
証明書自動生成設定ファイル編集
TraefikでHTTPSを構築するには、./traefik/traefik.ymlに以下のように記述します。
|
1 2 3 4 5 6 7 |
entryPoints: websecure: address: ":443" http: tls: certResolver: le |
certResolver: leでLet's Encryptの証明書自動生成を有効化- ブラウザでhttps://localhostにアクセスすると、自動的に証明書が発行されます
完成後の環境チェックと構築完了の宣言
Laravel Sailを使用してDocker環境を構築した後は、ブラウザからアプリケーションにアクセスし、すべてのサービスが正常に動作しているか確認します。この段階でエラーがない場合、「構築完了」とコメント欄に投稿してください。
ブラウザでのアクセステスト手順
- Webブラウザを開き、
http://localhostにアクセス - Laravelの初期画面が表示されればOK
- HTTPS環境をテストする場合は
https://localhostで確認
まとめ
本記事では、Laravel SailによるDocker環境構築の手順をステップバイステップで解説しました。重点的に以下の項目を取り上げました:
- macOS/Linuxでの前提ソフトウェアのインストール
- Laravelプロジェクト初期化とSail設定ファイル生成
- Dockerコンテナの起動とサービス確認
- MySQL/MariaDBバージョン指定
- ローカル環境でのHTTPS構築
以上を実施した場合は、コメント欄に「構築完了」と投稿してください。