GitHubから取得したLaravelプロジェクトをSailでローカル起動する方法

Laravel Sailとは

本記事では、GitHubなどから取得した既存のLaravelプロジェクトを、Laravel Sailを使ってローカル環境で起動する手順を紹介します。

.envの作成、Composerパッケージのインストール、Dockerコンテナの起動、マイグレーション、Vite開発サーバーの起動までを順番に解説します。

また、APP_KEYが設定されていないエラーや、データベースのテーブルが存在しないエラーなど、初回起動時によく発生する問題への対処方法も紹介します。

今回使用する環境

本環境のベースは、AIエージェント(Claude Code)で作成したものである。

今回起動するLaravelプロジェクトの主な構成は次の通りです。
- Laravel 13
- PHP 8.4
- Laravel Sail
- MySQL
- React
- Inertia.js
- Tailwind CSS
- Vite

プロジェクトには、Laravel Sail用のcompose.yamlがすでに用意されているものとします。

Laravel Sailを起動する前提条件

  • Docker Desktopがインストールされている。
  • プロジェクトにcomposer.jsonがある
  • プロジェクトにcompose.yamlまたはDocker Compose設定がある
  • laravel/sailがComposerパッケージとして登録されている
  • ターミナルからプロジェクトのルートディレクトリを開いている

Laravel公式ドキュメントでは、SailはLaravelのDocker開発環境を操作するための軽量なCLIを説明されており、その中心はプロジェクトルートのcompose.yamlとSailスクリプトです。

.envファイルを作成する

Laravelの一般的な初期構成では、通常は、.env.exampleをコピーして.envを作成します。

cp .env.examle .env
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=

.envの中ぐらいにこのような設定があるかと思います。

それを以下のように変更します。

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password

DB_DATABASE 、DB_USERNAME 、DB_PASSWORDは、compose.yamlに設定されているMySQLの環境変数と一致させます。

Composerパッケージをインストール

MacにComposerがインストールされている場合

composer install

Composerがインストールされていない場合

事前にComposerをインストールする必要があります。

また、vendor/bin/sail自体がvendor内にあるため最初のcomposer installが完了するまでは次のコマンドを実行できません。

./vender/bin/sail up

Docker Desktopを起動する

事前にDocker Desktopを起動しておく。

Laravel Sailをビルド・起動する

Docker Desktopのインストールを実施

Docker Desktopの公式ページへ行き、自分のOSに合う「Docker Desktop」をダウンロードし、自分のPCへインストールを実施しておく。

Docker Desktop: 開発者向けの#1コンテナ化ツール | Docker
Dockerデスクトップは、開発者向けの共同コンテナ化ソフトウェアです。 今すぐ Docker Desktop を Mac、Windows、または Linux でダウンロードしましょう。

Dockerイメージを含めてビルドは以下のコマンドで実行します。

./vendor/bin/sail up -d --build

Laravelの初期設定を行う

APP_KEYを生成する

Laravelのアプリケーションキーを事前に設定しておく。

./vendor/bin/sail artisan key:generate

マイグレーションを実行する

DBに初期値を設定しておくために以下のコマンドを実行

./vendor/bin/sail artisan migrate

React・Viteを起動する

Vite,React,Inertiaなどを使っている場合は、Node.jsパッケージもインストールします。

./vendor/bin/sail npm install

そして、ローカル環境での起動は以下のコマンドで実施

./vendor/bin/sail npm run dev

ブラウザからLaravelを確認する

通常は、次のURLにアクセスします。

http://localhost

上記のような画面が表示できたら、Laravel Sailでの立ち上げが成功しています。

Laravel Sailの起動・停止コマンド

Laravelの単体の環境で立ち上げる場合は、以下のコマンドで、sailを立ち上げ、ローカル環境にアクセスすることができる。

./vender/bin/sail up -d

フロントエンドにVite,React等を組み込んでいる場合には、

npm run dev

で、サーバを立ち上げる必要がある。

よくあるエラーと対処方法

No application encryption key has been specified

ブラウザでLaravelにアクセスした際、上記エラーが発生した場合は、以下のコマンドを実施し、アプリケーションのAPP_KEYを設定する。

./vendor/bin/sail artisan key:generate

を実施することで、.env内のAPP_KEYに値が設定される。

Base table or view not found

上記エラーが発生した場合、Laravelのテーブルがない状態である。

./vendor/bin/sail artisan migrate

を実施することで、Laravelのテーブルを作成できる。

終わりに

本記事では、GitHubなどから取得した既存のLaravelプロジェクトを、Laravel Sailを使ってローカル環境で起動する手順を紹介しました。

基本的な流れは、.envの作成、Composerパッケージのインストール、Sailの起動、アプリケーションキーの生成、マイグレーション、Vite開発サーバーの起動です。

初回起動時にエラーが発生した場合は、APP_KEY、データベース設定、マイグレーションの実行状況、Viteの起動状況を確認してください。

Laravel Sailを利用すると、PHPやMySQLなどの開発環境をDockerコンテナとして統一できるため、複数人での開発や別のPCへの環境移行もしやすくなります。

コメント