Laravel Sailを利用して新しいLaravelプロジェクトの開発環境を構築した際、VSCodeのDevcontainerの設定手順が分かりづらかったのでまとめておきます。
事前準備
Devcontainerを利用するつもりであれば既に済んでいると思いますが、Docker Desktopのインストールを済ませておく必要があります。Windowsの場合はWSL2のインストールも併せて必要です。
Laravelのインストール
$ curl -s "https://laravel.build/laravel-example?with=mysql,mailhog" | bash
with
クエリストリングにはカンマ区切りで次の値を指定すると必要なサービスだけを含めることができます。1
-
mysql
(default) pgsql
mariadb
-
redis
(default) memcached
-
meilisearch
(default) minio
-
selenium
(default) -
mailhog
(default)
何も指定しない場合は (default) のついたサービスがセットアップされます。
Sailの起動
$ cd laravel-example
$ ./vendor/bin/sail up -d
バックグラウンド(detach)モードで起動します。10分程度かかるのでしばらく待ちます。
Devcontainer設定ファイルの作成
$ ./vendor/bin/sail artisan sail:install --devcontainer
artisanのsail:install
コマンドに--devcontainer
オプションを付けると、Devcontainerの設定ファイル.devcontainer/devcontainer.json
が作成されます。
コンテナ内でartisanコマンドを実行するにはsail artisan queue:work
のようにします。
インストールするサービスを聞かれるのでカンマ区切りで入力します。
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,7
Sail scaffolding installed successfully.
ディレクトリをDevcontainerで開く
$ code .
VSCodeが開いたら、表示される通知(Folder contains a Dev Container configuration file...
)あるいはコマンドパレットにOpen Folder in Container
を入力する等の方法でコンテナで開けば環境構築は完了です。