プロキシ環境下でLaravel Sailを使おうとしたら遭遇したエラー色々

プロキシ環境下にあるWindows11(22H2)でLaravel Sailを使おうとしたらあれこれとエラーが起きたので、その対処に実施した操作の記録です。簡単に使えると聞いてたのにあれこれとエラーが出まくりで苦労した。

WSLが起動しない

WSLを起動しようとすると次の様なエラーメッセージが表示されて起動できませんでした。

ファイル システムの 1 つをマウント中にエラーが発生しました。詳細については、「dmesg」を実行してください。

以下の記事を参考にアップデートをかけてみました。

実行したコマンドは以下2つです。

wsl --shutdown

wsl --update

WSLがまだ起動しない

再度実行しようとすると今度は以下の様な違うエラーメッセージになりました。

Processing fstab with mount -a failed.

<3>WSL (8) ERROR: CreateProcessEntryCommon:358: getpwuid(0) failed 2
<3>WSL (8) ERROR: CreateProcessEntryCommon:362: getpwuid(0) failed 2
<3>WSL (8) ERROR: CreateProcessEntryCommon:570: execvpe /bin/sh failed 2
<3>WSL (8) ERROR: CreateProcessEntryCommon:579: Create process not expected to return

こちらの記事を参考にUbuntuをインストールし既定のディストリビューションとしてみました。

実行したコマンドは以下3つです。3つ目はただの確認です。

wsl --install ubuntu

wsl --set-default Ubuntu

wsl --list

wslが起動するようになりました。

Dockerが認識できない

次のコマンドでSail込みでLaravelがインストールされるはずです。

curl -s https://laravel.build/example-app | bash

しかし次のメッセージが表示されてしまいました。

Docker is not running.

以下サンプル画像ではプロキシを指定しています。

こちらの記事を参考にDocker DesktopでWSL INTEGRATIONの画面を開き、Ubuntuを有効にして再起動しました。

コンテナがビルド出来ない

さっきのコマンドをまた実行すると今度はコンテナのビルド中に以下の様になんかのダウンロードに失敗したメッセージが表示されました。

Creating a "laravel/laravel" project at "./example-app"
https://repo.packagist.org could not be fully loaded (curl error 7 while downloading https://repo.packagist.org/packages.json: Failed to connect to repo.packagist.org port 443: Connection refused), package information was loaded from the local cache and may be out of date

In CurlDownloader.php line 365:

curl error 7 while downloading https://repo.packagist.org/p2/laravel/laravel.json: Failed to connect to repo.packagist.org port 443: Connection refused

またどうせプロキシのせいだろうとcurlで落としてきているスクリプトを一旦ファイルに保存し中身を以下の様にプロキシの設定を追加しました。(9~10行目)

まだ出来ない

./vendor/bin/sail upコマンドを実行するとまたもやエラー。sailのDockerfileにもプロキシ設定が必要っぽい。以下のコマンドを実行するとLaravelプロジェクトのルートフォルダにdockerというフォルダが作られる。

vendor/bin/sail artisan sail:publish

その中を辿るとDockerfileがあるので同様にプロキシの設定を追加する。

docker/8.2/Dockerfile

こんな感じ。

出来た

以下コマンドでやっと動くようになりました。

.vendor/bin/sail up -d

http://localhost/にアクセスするとLaravelの画面が表示されました。

最後に

このやり方が正しいか分からないけどSailって簡単に使えるはずなのにめちゃくちゃ大変だと思いました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です