参考記事
-
WindowsでWSL2を使って「完全なLinux」環境を作ろう!
https://www.kagoya.jp/howto/it-glossary/develop/wsl2_linux/ -
windowsにLinuxを入れてDocker環境を構築する
https://zenn.dev/giana12th/articles/6cc6540e0dd306 -
WSL2のインストールを分かりやすく解説【Windows10/11】
https://chigusa-web.com/blog/wsl2-win11/ -
Ubuntu on WSL2でのDocker Engineの最短インストール手順
https://qiita.com/nujust/items/d7cd395baa0c5dc94fc5 -
WSL2(Ubuntu)へGitを導入
https://continue-cloud.net/wsl2-03/ -
(おまけ)【Docker Desktop】Windowsにインストール
https://chigusa-web.com/blog/windowsにdockerをインストールしてpython環境を構築/
実現したこと
Docker Desktopを使用せずに、windowsでwsl2をインストールしてlinux環境へdockerをインストール
やったこと
windowsへwsl2のインストール
windows 11 ならコマンドプロンプトかpowershellで以下を実行
$ wsl --install
Linuxの更新
$ sudo apt update && sudo apt upgrade
Docker Engineのインストール
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
ルート以外のユーザーでdockerコマンドを利用する設定を加える
$ sudo usermod -aG docker $USER
systemdの有効化
$ sudo vi /etc/wsl.conf
wsl.conf
内に以下を記述する
[boot]
systemd=true
(自分の場合はすでに書き込まれていた)
WSLの再起動
ここまでの設定を反映させるため、WSLを再起動する。
WSLを閉じ、PowerShellで以下のコマンドを実行。
$ wsl --shutdown
Dockerの実行確認
再度wslを起動して以下のコマンドを実行
$ docker run hello-world
以下のようなメッセージが表示されればインストール完了
Hello from Docker!
This message shows that your installation appears to be working correctly.
↑ここまでがwsl2 + Dockerのインストール
↓ここからはLaravelプロジェクトの配置
※自分の環境ではwsl2をインストール時にデフォルトでubuntuがインストールされたため以下wsl2での操作をubuntuと表記
※今回はgithubにあるLaravelプロジェクトをcloneして配置
ubuntuの起動
windowsの「すべてのアプリ」などからubuntuを起動するか、win + Rでcmdを起動したあとタブからubuntuを選択して起動する
ubuntuへgitのインストール
- ubuntuのcliで以下を実行
$ sudo apt-get install git
- ユーザ情報の設定
$ git config --global user.name <GitHubユーザ>
$ git config --global user.email <GitHubへ登録したメールアドレス>
- デフォルトのエディタをVSCodeに設定
$ git config --global core.editor "code --wait"
リポジトリをclone
- ubuntuの/home/(ユーザー名)/以下でプロジェクト用のフォルダを作成 + カレントディレクトリを移動
- URL経由でリポジトリをclone(※sshの設定が面倒だったのでURLを使用しているだけなのでURL経由が必須ではないです)
- リポジトリ内の
docker-compose.yml
ファイルを使ってDockerコンテナを作成・起動
※この時点ではubuntuに docker-compose
がインストールされていないと思うので以下を実行する
$ sudo apt update
$ sudo apt install docker-compose
その後、以下を実行する
$ docker-compose up -d
あとはlaravelで composer install
を行うことになると思うが、それらのコマンドはコンテナ内で実行する
コンテナ内に入る方法は他の記事を参照してください
vscodeの設定
ここまででwsl2 + Docker環境にLaravelプロジェクトを配置することができたが、vscodeでubuntu内のファイルにアクセスするには以下の拡張機能の追加が必要だった
Remote Development
Laravelのログファイルへアクセス権限付与
これでようやく作業が開始できるかと思ったが、ブラウザでlocalhostへアクセスしてみると
The stream or file "/var/www/laravel-v10-starter/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied The exception occurred while attempting to log:
というエラーが発生してた。
chatGPTに投げてみると
- このエラーメッセージは、Laravelのログファイル**
laravel.log
**に書き込みを試みた際に、パーミッション(権限)が不足しているために発生しています。Laravelでは、アプリケーションの実行中に様々な情報をログファイルに記録しますが、このファイルやディレクトリに適切な書き込み権限がないと、上記のようなエラーが出ます。
ということだった。
そこでエラーの解決方法として以下を実行した
ステップ 1: 所有者の変更
$ sudo chown -R www-data:www-data storage bootstrap/cache
ステップ 2: 書き込み権限の設定
$ sudo chmod -R 775 storage bootstrap/cache
これでエラーが解消され、ようやく開発が開始できた。