Laravel Sail にサービスを追加する方法
Laravel Sail は Docker‑Compose をラップした軽量 CLI です。
サービスを追加する手順は 2 つのステップに分かれます。
php artisan sail:add <service>で Sail にサービスを登録sail up(またはsail up <service>)でコンテナを起動
1. Sail の構成概要
| ファイル | 内容 | 役割 |
|---|---|---|
docker-compose.yml |
すべてのサービス・ネットワーク・ボリュームを定義 | 実際のコンテナ構成 |
vendor/bin/sail |
シェルスクリプト | docker compose を Sail 用にラップ |
sail CLI |
sail up / sail down など |
便利なコマンド群を提供 |
php artisan sail:add を実行すると、Sail が自動的に docker-compose.yml に該当サービスを挿入し、必要に応じてクライアントバイナリを更新します。
2. Artisan でサービスを追加
# Redis を追加
php artisan sail:add redis
# Mailpit を追加
php artisan sail:add mailpit
# サポートされているサービス例
# mysql, postgres, redis, memcached, mailpit, minio, phpmyadmin, …
実行後、docker-compose.yml にサービス定義が挿入され、Sail のスクリプトが新しいサービス名をコマンドとして認識します。
3. サービスの起動
# 追加したサービスだけ起動
sail up -d redis
# すべてのサービスを起動
sail up
# ステータス確認
sail ps
ヒント:開発中は必要なサービスだけ起動するとビルド時間が短縮できます。
sail up -d mysql redisのように指定してください。
4. 手動編集でカスタムサービスを追加
既定のサービス以外(例:特定バージョンの PostgreSQL、外部 API コンテナなど)を追加したい場合は、docker-compose.yml を直接編集します。
services:
custom_api:
image: my-org/api:latest
ports:
- "8080:80"
networks:
- sail
編集後は Sail を再起動します。
sail down
sail up
5. よく使われる Sail サービス一覧
| サービス | Docker イメージ | ポート | Sail コマンド |
|---|---|---|---|
| MySQL | mysql:8.0 |
3306 | sail:mysql |
| PostgreSQL | postgres:15 |
5432 | sail:postgres |
| Redis | redis:7 |
6379 | sail:redis |
| Memcached | memcached:1.6 |
11211 | sail:memcached |
| Mailpit | axllent/mailpit:latest |
8025 | sail:mailpit |
| Minio | minio/minio:latest |
9000 | sail:minio |
6. よくある落とし穴と対策
| 落とし穴 | 原因 | 対策 |
|---|---|---|
| Docker Compose のバージョン不一致 | Sail は Compose v2 が必要 | Docker Desktop を最新版にするか、docker compose v2 をインストール |
| ポート競合 | 既存サービスと同じホストポートを使用 | docker-compose.yml でポートを変更、またはネットワーク内のみ通信 |
| サービスが起動しない | 設定ミス・依存関係不足 | sail logs <service> でログ確認、環境変数・ボリュームを調整 |
| Sail コマンドが見つからない | Sail がインストールされていない | composer require laravel/sail --dev → php artisan sail:install |
7. 具体例:Redis を追加して起動
# 1. 追加
php artisan sail:add redis
# 2. docker-compose.yml を確認
grep -A5 redis docker-compose.yml
# 3. Redis だけ起動
sail up -d redis
# 4. 状態確認
sail ps | grep redis
8. 参考リンク
結論
php artisan sail:add <service>が Sail にサービスを追加する標準手段です。
カスタムサービスが必要な場合はdocker-compose.ymlを手動で編集し、Sail を再起動します。
ポート競合や Compose バージョンの違いに注意しながら進めれば、スムーズに環境を拡張できます。

