Laravel Sail
Laravel Sail というツールが 2020年12月9日 にローンチされました。
公式が出した Laravel アプリケーションの Docker 開発環境構築ツールです。
この記事では、Laravel Sailを使用して、Laravelの開発環境を構築するまでの手順を記述してます。
開発環境
今回の開発環境は以下となります。
- macOS Big Sur 11.5.2
- Docker Desktop for Mac(docker 20.10.8)
Laravel Sail を Mac で動かす為には Docker Desktop を予めインストールしておく必要があります。
Laravel Sailの導入
Laravel Sail は、LaravelをDocker開発環境で動作させるためのツールです。
Laravelを動作させるための一通りの仕組みが構築され、Dockerでの開発環境を構築する事ができます。
まずは sail のための Laravel をインストールする為にシェルを実行します。書式は以下になっています。
curl -s https://laravel.build/<YOUR_PROJECT_NAME> | bash
今回は、laravel-testという名前のプロジェクトを作成します。
# laravel-testという名前のプロジェクトを作成 curl -s https://laravel.build/laravel-test | bash
以下のコマンドを実行するだけでLaravelの開発環境を構築することが可能です。
cd laravel-test && ./vendor/bin/sail up
初回実行の場合は mysql, redis, mailhog, そして Laravel アプリケーション用(PHP や node などが入る)のイメージが作成されてから、それぞれコンテナが起動します。
ブラウザから http://プライベートIP or http://localhost にアクセスすると、Laravelの開発環境が構築されています。
ブラウザから http://プライベートIP or サーバーアドレス:8085にアクセスすると、メール確認用のMailHogも構築されています。
sailコマンド
Laravel Sailで起動させた場合に、コンテナの起動・停止や通常叩いている artisan コマンド等は以下の sailコマンドを使う事で実行できます。
./vendor/bin/sail <same_command...>
エイリアスの反映確認のため、以下のコマンドを Laravelのルートディレクトリ配下で実行します。
$ ./vendor/bin/sail -v docker-compose version 1.29.2, build 5becea4c
MySQLへアクセス
mysqlにも「sail」コマンドを使用すればアクセスすることが可能です。
$ ./vendor/bin/sail exec mysql mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 237 Server version: 8.0.27 MySQL Community Server - GPL Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
その他のコマンド
artisanコマンド・PHPUnit・PHPコマンド・Composerコマンド・nodeのコマンドも叩くことが出来ます。
# artisanコマンドを実行したい場合 ./vendor/bin/sail artisan <command> # 例 ./vendor/bin/sail artisan queue:work # PHPコマンドを実行したい場合 ./vendor/bin/sail php <command> # 例 ./vendor/bin/sail php --version # composerを実行したい場合 ./vendor/bin/sail composer <command> # 例 ./vendor/bin/sail composer install ./vendor/bin/sail composer update ./vendor/bin/sail composer require laravel/sanctum # npm or node or yarnを使用したい場合 ./vendor/bin/sail npm <command> ./vendor/bin/sail yarn <command> ./vendor/bin/sail node <command> # 例 ./vendor/bin/sail yarn install ./vendor/bin/sail npm install ./vendor/bin/sail node --version # コンテナの中に入りたい場合 ./vendor/bin/sail bash ./vendor/bin/sail shell # コンテナの中のログを確認したい場合 ./vendor/bin/sail logs -f # 特定のサービスの再起動をしたい場合 ./vendor/bin/sail restart <service_name> # 例 ./vendor/bin/sail restart mysql #PHPUnit を動作させる時も sail コマンドで実行。 ./vendor/bin/sail test
sailコマンド一覧
起動
./vendor/bin/sail up
バックグラウンドで起動
./vendor/bin/sail up -d
停止
./vendor/bin/sail stop
ステータス
./vendor/bin/sail ps
エイリアスの設定
「./vendor/bin/sail」と毎回入力するのは面倒なので、エイリアスを設定します。
vi ~/.zshrc <編集> alias sail="./vendor/bin/sail"
反映させます。
source ~/.zshrc
今回はLaravel sailのインストールから開発環境の構築・コマンドについて紹介しました。