LoginSignup
1
1

windowsでwsl2 + DockerでLaravelプロジェクトの開発を始めるためにやったこと

Posted at

参考記事

実現したこと

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のインストール

  1. ubuntuのcliで以下を実行
$ sudo apt-get install git
  1. ユーザ情報の設定
$ git config --global user.name <GitHubユーザ>
$ git config --global user.email <GitHubへ登録したメールアドレス>
  1. デフォルトのエディタをVSCodeに設定
$ git config --global core.editor "code --wait"

リポジトリをclone

  1. ubuntuの/home/(ユーザー名)/以下でプロジェクト用のフォルダを作成 + カレントディレクトリを移動
  2. URL経由でリポジトリをclone(※sshの設定が面倒だったのでURLを使用しているだけなのでURL経由が必須ではないです)
  3. リポジトリ内の 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

これでエラーが解消され、ようやく開発が開始できた。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1