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で構築した環境にインストールされるので、別途インストールの必要ありません。
Laravelのインストール
次にLaravelのインストールを行なっていきます。
まずターミナルを開いて、プロジェクトを作成したい場所へ移動しましょう。
cd /Projects
Bash以下のmy-project
の部分を任意のプロジェクト名に変更して実行してください。
現在いるディレクトリにmy-project
のディレクトリが作成されて、そこにLaravelに必要な一式がダウンロード、インストールされます。
curl -s https://laravel.build/my-project| bash
Bashlatest: 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とフェイクメールサーバーがあれば十分かと思います。
curl -s "https://laravel.build/example-app?with=mysql,mailpit" | bash
Bash[Services]に以下のサービスをカンマ区切りで入力すればよいです。
サービス | デフォルト | 備考 |
---|---|---|
mysql | ○ | RDB |
pgsql | RDB | |
mariadb | RDB | |
redis | ○ | インメモリデータストア |
memcached | インメモリデータストア | |
meilisearch | ○ | 全文検索 |
minio | Amazon 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ファイルの一番下の行に以下を追記します。
alias sail="vendor/bin/sail"
Bashこの設定の変更を反映させるために以下のコマンドを実行しましょう。
. ~/.zshrc
Bash次回以降のターミナル起動時は、上記の設定が最初から反映されるため、上記作業は不要です。
エイリアス作成確認
実際に適用されているか確認してみましょう。
プロジェクトのディレクトリで以下のコマンドを実行します。
sail
BashUsage:
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
公式リンク
より細かい情報は以下の公式(英語)を参照してみてください。
よくあるトラブルと解決策
Docker環境でのよくあるトラブルとして、以下のポイントをチェックしておくとスムーズな開発が進められます。
- コンテナが起動しない:
docker ps
コマンドで実行中のコンテナを確認し、エラーメッセージを確認する。 - ポートの競合: 他のアプリケーションが同じポートを使用している場合は、ポート番号を変更する。
これらのトラブルに直面した場合は、公式ドキュメントやコミュニティを参考に解決しましょう。
まとめ
この記事では、Laravel 10.xをDockerを利用してセットアップする手順を紹介しました。Laravel Sailを活用することで、手間をかけずに開発環境を整えることができます。今後もDocker環境でのLaravelの使い方をさらに深め、快適な開発を進めていきましょう。
コメント