はじめに
DockerでLaravelの開発環境構築するか〜と思ってネット上をサーフィンしていたところ、2020年末にLaravelが公式にLaravel Sailというめちゃくちゃ便利なDocker環境をリリースしていたのでまとめました。
Dockerの知識がない方でも簡単に始められます。Laravel Sail初見の方はぜひ騙されたと思ってやってみてください!
環境
- macOS Big Sur
- Docker Desktop 3.3.3
Laravel Sailを使うためにはDocker Desktop
のインストールが必要です。
新規Laravelアプリの作成とSailのインストール
$ curl -s https://laravel.build/<アプリ名> | bash
アプリの作成とsailのインストールは同時に行われます。
これでmysql
・redis
・meilisearch
・selenium
・mailhog
がデフォルトで利用できるようになりますが、with
クエリを使って
mysql
pgsql
mariadb
redis
memcached
meilisearch
selenium
mailhog
から使いたいサービスを個別指定することも可能です。
$ curl -s "https://laravel.build/example-app?with=mysql,redis" | bash
#既存のLaravelアプリにSailをインストールする場合
$ composer require laravel/sail --dev
$ php artisan sail:install
アプリの起動
$ cd <Laravelアプリ>
$ ./vendor/bin/sail up -d
http://localhost/
にアクセスするとLaravelの初期画面が、http://localhost:8025
にアクセスするとMailHogが表示されます。Sailをバックグラウンドで起動するにはデタッチの-d
オプションを追加します。
エイリアス設定
呼び出し時に毎回./vendor/bin/sail
と入力するのが面倒なので、エイリアスを設定します。こちらの記事を参考にさせて頂きました。
$ alias sail='./vendor/bin/sail'
$ source ~/.bash_profile
$ alias sail='./vendor/bin/sail'
$ source ~/.zshrc
コマンド実行
$ sail artisan make:controller コントローラ名
$ sail php --version
$ sail composer require ベンダー名/パッケージ名
$ sail node --version
$ sail npm run dev
$ sail test
例:Vueのセットアップ
コンテナ起動、停止以外は普段通りです。どれだけ普段通りか示すためにVueとの連携手順を載せておきます。
laravel/uiのダウンロード
$ sail composer require --dev laravel/ui #この時点でresources/js/components以下にvueコンポーネントが設置される
vueの認証スカフォールドの生成
$ sail artisan ui vue --auth #認証機能をつけたい場合(ちなみにlaravelはjetstreamを推奨してます)
パッケージのインストール
$ sail npm install
ビルド
$ sail npm run dev #または sail npm run watchで自動コンパイル
アプリ(コンテナ)の停止
$ sail down #または'Ctr + C'
おわりに
いかがでしたか?Docker Desktopがあらかじめインストールされていた方は
$ curl -s https://laravel.build/<アプリ名> | bash
$ ./vendor/bin/sail up
の2行、時間にして約3秒くらいで開発環境構築が完了しましたね!(適当)
自分でDockerfile, docker-composeファイルを作る手間なくMySQL, mailサーバ等開発における必要最低限の機能が用意されるのでめちゃくちゃ便利です。
まだ試してない方はぜひ使ってみてください!
参考