介紹 Laravel Sail 和基本操作
使用 Laravel Sail 啟動專案開發環境,輕鬆愉快
在 Laravel 開發環境建置上官方與非官方都有提供非常多的方式
這次要介紹的是 Laravel 8 之後加入的套件:Laravel Sail
過去為了節省新手在接觸初期環境建置的時間,有需多套開發環境的工具
例如透過虛擬機建立的 Laravel Homestead
也有基於 Docker 的開發環境:laradock
,或是像我一樣自己用 Docker 建立 Laravel 開發環境
而在 Laravel 8 之後將 Laravel Sail
加入內建套件,不需要額外安裝
相較於 Laravel Homestead 來說,因為是使用 Docker 所以需要的資源較少
而和同樣基於 Docker 環境的 laradock 相比,則是設定較為容易,甚至不需要設定,達到開箱即用
在使用 Laravel Sail 之前,電腦必須先安裝 Docker
安裝 Sail
在 Laravel 9 已經內建有 Sail 了,可以直接使用指令啟動服務
php artisan sail:install
如果沒有安裝的舊版本 Laravel,則可以透過 composer 進行安裝
composer require laravel/sail --dev
執行指令後會出現互動介面問你想要使用哪些服務
Which services would you like to install? [mysql]:
[0] mysql
[1] pgsql
[2] mariadb
[3] redis
[4] memcached
[5] meilisearch
[6] minio
[7] mailhog
[8] selenium
> 0,3,7
Sail scaffolding installed successfully.
選擇完之後就會在專案根目錄產生一個docker-compose.yml
檔案
然後就可以使用指令啟動 Sail 服務
./vendor/bin/sail up
設定指令別名
如果很懶不想打這麼長,可以設定指令的別名
透過vim ~/.bashrc
或vim ~/.zshrc
(看你的終端機是使用哪一款)
在檔案中加入
alias sail="./vendor/bin/sail"
接著就可以直接在專案內透過sail
別名來執行 Sail 指令,底下都以加入別名後的指令來進行操作
使用 Sail
使用上跟 Docker 指令很像
sail up -d
:啟動並且在背景執行sail stop
:停止sail down
:停止並刪除容容器sail build --no-cache
:重新建立容器,並忽略快取全部重建
調整映像檔
預設的映像檔包含了 Laravel 基本的環境
若是想調整,例如想安裝額外的 php extension 則需要導出相關設定
php artisan sail:publish
執行完之後專案內會多一個docker
資料夾,裡面就是容器用的設定和 Dockerfile
指行指令
在 Sail 中提供了很方便的方法可以呼叫到各種指令
基本上就是在各種指令前面加上sail
執行 PHP 指令
sail php --version
執行 Composer 指令
sail composer install # composer install
執行 Artisan 指令
sail artisan queue:work # php artisan queue:work
sail artisan schedule:work # php artisan schedule:work
執行 shell 指令
sail shell myShell.sh # sh myShell.sh
如此簡單就可以建立開發環境,而且也可以操作指令
Laravel Sail 真的減少很多開發上的麻煩事!