WindowsでWSL2とDocker Desktopを使用してUbuntuの環境を構築します。
UbuntuにLaravel9をインストールして、Laravelのsailを使用して開発環境を構築します。
最後に、UbuntuのLaravelのソースコードをWindowsのVisual Studio Codeから直接操作できるように設定します。
はじめに
Laravel9が2022年2月8日にリリースされました。Laravel9の開発環境構築方法は多々あるのですが、開発環境としてはDockerを使用する方法が一般的になりつつあります。WindowsでDockerを使用するための手順と合わせて、Docker環境をエディタ(Visual Studio Code)で操作する手順を備忘録として記します。
Docker Desktopのインストール
WindowsでDockerを使用するには、Docker Desktopを使用するのが最も簡単だと思います。Docker Desktopは小さな会社では無料版が使用できますが、大きな会社では無料版を使用できませんので注意してください。(参考:https://www.docker.com/pricing)
Docker Desktopをダウンロードします。https://www.docker.com/products/docker-desktop
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/docker_desktop-1024x768.png)
デフォルト通りインストールするとWSL2もインストールされます。再起動を促されますので、再起動します。
再起動すると、ライセンスの確認が出るので、Acceptを選択します。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/docker_desktop1.png)
virtualizationのエラーが出た場合はBIOSの設定を変更する必要があります・
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/docker_desktop2.png)
Dockerはハードウェアの仮想化技術を使用するため、これがBIOSで有効に設定されている必要があります。
BIOSの設定の仕方はPCによって異なるため、PCのメーカーのサイト等でやり方を調べてください。
私のPCの場合は、一旦電源を切って再度電源を入れ、起動直後にF2キーを連打するとBIOSの設定に入れました。
Intel Virtual Technologyの項目をDisabledからEnabledに変更し保存し手起動します。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/bios1.jpg)
再度起動すると、WSL2のインストールがまだ完了していないメッセージが表示されます。
https://aka.ms/wsl2kernel にアクセスして、以下の手順4を実施します。
「x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ」をダウンロードします。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/docs.microsoft.com_ja-jp_windows_wsl_install-manual-1024x768.png)
ダウンロードしたファイルを実行してインストールします。
WSLのデフォルトバージョンを2に設定します。
PowerShellを開き、wsl --set-default-version 2
を実行します。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/image.png)
Ubuntuのインストール
Microsoft Storeを開きます。
「ubuntu」で検索してubuntu 20.04の入手ボタンをクリックしてインストールします。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/スクリーンショット-28-1024x523.png)
スタートメニューからUbuntuを起動します。
起動するとユーザアカウントとパスワードを聞かれるので入力してユーザを作成します。これを無視して終了し、再度Ubuntuを起動するとrootで操作する形になるので、rootで操作して構わなければユーザを作成しなくてもよいようです。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/スクリーンショット-31-1024x533.png)
PowerShellを開き、wsl -l -v
を実行してUbuntuがWSLバージョン2で起動しているか確かめます。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/image-2.png)
上記のようにUbuntuのSTATEがRunningになっていて、VERSIONが2であれば問題ありません。
Runningになっていない場合は、Docker DesktopのSettingを開き、Resouces > WSL INTEGRATIONを開いてUbuntuのスイッチをオンします。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/image-3-1024x656.png)
Laravelプロジェクトを作成する
Ubuntuを起動し、プロジェクトを作成するディレクトリをカレントにして、curl -s https://laravel.build/example-app | bash
を実行します。example-appはプロジェクト名です。ここではexample-appとしています。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/image-5.png)
example-appディレクトリが作成されたので、ここにカレントディレクトリを移動します。
cd example-app
LaravelのSailを使用して、コンテナを起動します。下記のコマンドを実行します。./vendor/bin/sail up
-d
初回起動時はかなり時間がかかります。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/image-6.png)
storageディレクトリのパーミッションを変更します。以下のコマンドを実行します。chmod -R 777 storage/
Webブラウザでアクセスする
Webブラウザでhttp://localhost/にアクセスし、Laravelのウェルカムページが表示されていればLaravelが正しくインストールされ、Sailが正しく動作しています。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/image-7-1024x682.png)
Visual Studio Codeの設定
上記まででLaravelの開発環境は構築できていますが、Visual Studio Codeを設定することでより良い開発環境ができます。必須ではありませんが、合わせて解説します。
Remote Development拡張をインストールします。Remote Developmentには以下の3つの拡張が含まれています。
・Remote – SSH
・Remote – Containers
・Remote – WSL
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/image-8-1024x555.png)
画面左下の緑の「><」をクリックします。
「New WSL Window using Distro… 」を選択します。
「Ubuntu」を選択します。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/image-9-1024x554.png)
新しいウィンドウが開くので、元のウィンドウは閉じます。
新しいウインドウでLaravelプロジェクトのフォルダを開きます。
![](https://www.inet-solutions.jp/wp-content/uploads/2022/03/image-10-1024x768.png)
これでUbuntuのLaravelプロジェクトをVisual Studio Codeで開けました。
Visual Studio Codeで直接UbuntuのLaravelプロジェクトを編集できます。
また、画面右下はUbuntu上のターミナルが動作しています。これを使用するとVisual Studio Code上でUbuntuのターミナル操作が行えます。