【PHP】Laravel Sailで環境構築しよう!DockerでLaravel 10を簡単にインストールする方法

Laravel

Laravel10.xのSailを利用して、Docker環境を使った開発環境を構築する手順を紹介します。

この記事ではLaravelのトップページが表示されるところまで紹介します。

Laravelとは

LaravelはPHPのフレームワークで最も人気の高いものの一つです。

豊富な機能もあり、Webアプリケーションを比較的簡単に実装することができます。

さらに、公式ドキュメントやブログなども沢山あり、先人たちのノウハウも豊富な所も学習がしやすいと言えます。

インストール手順

composerを利用したやり方も従来通り出来ますが、この記事ではDockerを利用した、しかもLaravelの機能のsailを利用してインストールしていきます。

Dockerのインストール

Docker Desktopのダウンロード

まず、Docker DesktopをDockerの公式ページからダウンロードしましょう。

OSは基本的には自動的に判別してくれているかと思います。(ちなみに私はMacを使っています。)

Docker Desktopのインストール

ダウンロードしたファイルを実行してインストールしましょう。

オプションや設定などは特に変更する必要はありません。そのまま素直にインストールで大丈夫です。

ほとんどContinue、Agree、OKなどをクリックして大丈夫です。
チュートリアル画面に関してはSkip Tutorialで良いでしょう。

PHPなどは後でDockerで構築した環境にインストールされるので、別途インストールの必要ありません。

Windows に Docker Desktop をインストール — Docker-docs-ja 24.0 ドキュメント
Mac に Docker Desktop をインストール — Docker-docs-ja 24.0 ドキュメント

Laravelのインストール

次にLaravelのインストールを行なっていきます。

まずターミナルを開いて、プロジェクトを作成したい場所へ移動しましょう。

cd /Projects
Bash

以下のmy-projectの部分を任意のプロジェクト名に変更して実行してください。
現在いるディレクトリにmy-projectのディレクトリが作成されて、そこにLaravelに必要な一式がダウンロード、インストールされます。

curl -s https://laravel.build/my-project| bash
Bash
実行結果
latest: Pulling from laravelsail/php82-composer
Digest: sha256:37549f980be6146efcb16b0dc352644edfc5cca32b9862494631eb197ef89737
Status: Image is up to date for laravelsail/php82-composer:latest

   _                               _
  | |                             | |
  | |     __ _ _ __ __ ___   _____| |
  | |    / _` | '__/ _` \ \ / / _ \ |
  | |___| (_| | | | (_| |\ V /  __/ |
  |______\__,_|_|  \__,_| \_/ \___|_|

   WARN  TTY mode requires /dev/tty to be read/writable.

    Creating a "laravel/laravel" project at "./my-project"
    Info from https://repo.packagist.org: #StandWithUkraine
    Installing laravel/laravel (v10.2.3)
      - Downloading laravel/laravel (v10.2.3)
      - Installing laravel/laravel (v10.2.3): Extracting archive
:
:

様々なものをダウンロードしたり、Dockerのイメージをビルドしたりと結構時間がかかります。
5分以上はかかるので、お茶でもして待ちましょう。

最後に以下のようにパスワードを聞かれる事があります。
アプリケーションの権限を調整するために必要なので、OSのパスワードを入力しましょう。

実行結果
Please provide your password so we can make some final adjustments to your application's permissions.

Password:

Thank you! We hope you build something incredible. Dive in with: cd my-project && ./vendor/bin/sail up

オプション

インストールに慣れてきた方用に、必要なサービスを選択して入れることも可能です。
デフォルトで色々入ってきてコンテナを作成するため、重かったり、使わないサービスは邪魔と感じる方は指定してみると良いと思います。
作成するアプリケーションにもよりますが、主にRDBとフェイクメールサーバーがあれば十分かと思います。

MySQLとフェイクメールサーバのみ指定する場合
curl -s "https://laravel.build/example-app?with=mysql,mailpit" | bash
Bash

[Services]に以下のサービスをカンマ区切りで入力すればよいです。

サービスデフォルト備考
mysqlRDB
pgsqlRDB
mariadbRDB
redisインメモリデータストア
memcachedインメモリデータストア
meilisearch全文検索
minioAmazon S3互換のオブジェクトストレージ
seleniumブラウザ自動化システム
mailpitフェイクメールサーバー

Laravel起動

起動コマンド

続いてLaravelを起動します。
インストール完了メッセージにも記載されていましたが、プロジェクトのディレクトリに移動して、起動コマンドに-dを付けて実行します。

cd my-project && ./vendor/bin/sail up -d
Bash
実行結果
[+] Running 10/10
 ✔ Network my-project_sail               Created                                                                                                           0.1s 
 ✔ Volume "my-project_sail-mysql"        Created                                                                                                           0.0s 
 ✔ Volume "my-project_sail-redis"        Created                                                                                                           0.0s 
 ✔ Volume "my-project_sail-meilisearch"  Created                                                                                                           0.0s 
 ✔ Container my-project-mailpit-1        Started                                                                                                           1.0s 
 ✔ Container my-project-meilisearch-1    Started                                                                                                           0.9s 
 ✔ Container my-project-mysql-1          Started                                                                                                           0.9s 
 ✔ Container my-project-selenium-1       Started                                                                                                           0.9s 
 ✔ Container my-project-redis-1          Started                                                                                                           0.8s 
 ✔ Container my-project-laravel.test-1   Started                                                                                                           1.5s 

PHPやMySQLなどはDocker内でインストール・動作しているため、これで環境構築は完了しています。

-dオプションに関して

-dを付けると、バックグラウンドで実行してくれます。
もし付けない場合、実行中はターミナルが止まってしまいます。Ctrl+Cで復帰しますが、同時にLaravelも停止してしまいます。
他にもターミナルでsailコマンドなど色々実行する場合は、別ターミナルを開く必要があるため、不都合が多いため、付けて起動してください。
停止のさせ方は後述します。

起動確認

ブラウザでhttp://localhost/へアクセスしてみましょう。

以下のように出ていれば環境構築は成功です。

Laravel停止

作業を止めたい場合は以下のコマンドを実行します。

./vendor/bin/sail down
Bash
実行結果
[+] Running 7/6
 ✔ Container my-project-laravel.test-1  Removed                                                                                                            0.3s
 ✔ Container my-project-redis-1         Removed                                                                                                            0.2s
 ✔ Container my-project-mailpit-1       Removed                                                                                                            0.2s
 ✔ Container my-project-meilisearch-1   Removed                                                                                                            0.2s
 ✔ Container my-project-selenium-1      Removed                                                                                                            3.9s
 ✔ Container my-project-mysql-1         Removed                                                                                                            2.0s
 ✔ Network my-project_sail              Removed                                                                                                            0.0s

エイリアスを作成してsailコマンドを楽にする

エイリアスの作成

./vendor/bin/sailコマンドは起動・停止以外にもartisanの実行などにも利用するため、結構利用します。
毎回この長いコマンドを打つのは面倒なのでsailコマンドとしてエイリアスを作成しましょう。

ホームディレクトリの.zshrcファイルを編集します。ファイルがない場合には、新規作成します。

ファイルがない場合
touch ~/.zshrc
Bash

ファイルの一番下の行に以下を追記します。

~/.zshrc
alias sail="vendor/bin/sail"
Bash

この設定の変更を反映させるために以下のコマンドを実行しましょう。

. ~/.zshrc
Bash

次回以降のターミナル起動時は、上記の設定が最初から反映されるため、上記作業は不要です。

エイリアス作成確認

実際に適用されているか確認してみましょう。

プロジェクトのディレクトリで以下のコマンドを実行します。

sail
Bash
実行結果
Usage:
  sail COMMAND [options] [arguments]

Unknown commands are passed to the docker-compose binary.

docker-compose Commands:
  sail up        Start the application
  sail up -d     Start the application in the background
  sail stop      Stop the application
:

sailコマンドの使い方が出てくれば大丈夫です。
プロジェクトのディレクトリ直下以外はエラーが出ますので注意してください。

エラー時
zsh: no such file or directory: vendor/bin/sail

公式リンク

より細かい情報は以下の公式(英語)を参照してみてください。

Laravel - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing ...

よくあるトラブルと解決策

Docker環境でのよくあるトラブルとして、以下のポイントをチェックしておくとスムーズな開発が進められます。

  • コンテナが起動しない: docker ps コマンドで実行中のコンテナを確認し、エラーメッセージを確認する。
  • ポートの競合: 他のアプリケーションが同じポートを使用している場合は、ポート番号を変更する。

これらのトラブルに直面した場合は、公式ドキュメントやコミュニティを参考に解決しましょう。

まとめ

この記事では、Laravel 10.xをDockerを利用してセットアップする手順を紹介しました。Laravel Sailを活用することで、手間をかけずに開発環境を整えることができます。今後もDocker環境でのLaravelの使い方をさらに深め、快適な開発を進めていきましょう。

コメント

タイトルとURLをコピーしました