Windows10に構築したDocker+Laravel開発環境をWSLへ移行する
Windows10の環境でDocker+Laravelの環境で開発をしていて、Webレスポンスが非常に遅く開発に支障が出ているため、WSLに移行してかなり改善されたのでその際の手順をまとめます。
githubの設定
SSHの鍵ペアを作成
ファイル名はデフォルト、パスフレーズは無しで秘密鍵と公開鍵のペアを、ssh-keygenコマンドで生成します。
$ cd ~/.ssh $ ssh-keygen
完了すると、以下の2ファイルが生成されます。
- ~/.ssh/id_rsa (秘密鍵)
- ~/.ssh/id_rsa.pub (公開鍵)
公開鍵をgithubへ設定
以下の手順で、id_rsa.pub (公開鍵)の内容をgithubへ設定します。
1. id_rsa.pub (公開鍵)の内容を出力
$ cat ~/.ssh/id_rsa.pub
2. githubへSign in
https://github.com/login3. New SSH Key
Settings -> SSH and GPG keys -> New SSH Key をクリック
4. SSH Key 設定内容
以下のように設定して、Add SSH Keyをクリック
- Title
任意のタイトル - Key type
Authentication Key - Key
1で出力したid_rsa.pub (公開鍵) を貼りつける
以下のように一覧に追加されればOK
ソースコードをcloneする
ここまでの作業で、WSL内でgithubを利用する準備が整ったので、githubからソースコードをcloneします。
$ git clone git@github.com:s-watanabe-apps/laravel-project-test.git
なお、この時cloneするリポジトリのリンクは、githubで任意のリポジトリを開き、Code -> SSH の順にクリックして確認できます。
動作確認①
この時点でDocker Desktopが実行されていれば、コンテナを立ち上げることが出来ます。
$ docker-compose up -d Starting laravel-project-test_mysql_1 ... done Starting laravel-project-test_app_1 ... done Starting laravel-project-test_web_1 ... done $ docker-compose ps Name Command State Ports -------------------------------------------------------------------------------------------------------- laravel-project-test_app_1 docker-php-entrypoint php-fpm Up 9000/tcp laravel-project-test_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp laravel-project-test_web_1 nginx -g daemon off; Up 0.0.0.0:8000->80/tcp
しかし、ブラウザでトップページ(http://localhost:8000/)にアクセスすると、以下のようにエラーになります。
これは、Laravelのコンポーネントやその他ライブラリ群がインストールされていないためで、composer updateを実行して必要ライブラリをセットアップする必要があります。
PHPのセットアップ
composerを実行するためにはPHPが必要なので、まず初めにPHPをインストールします。
1. PHPバージョンを確認
versionを確認するとPHPをインストールするように言われるので、指示の通りaptによりインストールを行います。
$ php --version Command 'php' not found, but can be installed with: sudo apt install php7.4-cli
2. PHPのインストール
$ sudo apt install php7.4-cli
3. Fetchエラーが出る場合
インストール時に一部のリソースダウンロードで、以下のようにFetchエラーになる場合があります。
(省略) Err:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-common amd64 7.4.3-4ubuntu2.13 404 Not Found [IP: xxx.xxx.xxx.xxx] Err:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-json amd64 7.4.3-4ubuntu2.13 404 Not Found [IP: xxx.xxx.xxx.xxx] Err:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-opcache amd64 7.4.3-4ubuntu2.13 404 Not Found [IP: xxx.xxx.xxx.xxx] Err:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-readline amd64 7.4.3-4ubuntu2.13 404 Not Found [IP: xxx.xxx.xxx.xxx] Err:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-cli amd64 7.4.3-4ubuntu2.13 404 Not Found [IP: xxx.xxx.xxx.xxx] Err:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libapache2-mod-php7.4 amd64 7.4.3-4ubuntu2.13 404 Not Found [IP: xxx.xxx.xxx.xxx] Err:7 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4 all 7.4.3-4ubuntu2.13 404 Not Found [IP: xxx.xxx.xxx.xxx] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4-common_7.4.3-4ubuntu2.13_amd64.deb 404 Not Found [IP: xxx.xxx.xxx.xxx] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4-json_7.4.3-4ubuntu2.13_amd64.deb 404 Not Found [IP: xxx.xxx.xxx.xxx] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4-opcache_7.4.3-4ubuntu2.13_amd64.deb 404 Not Found [IP: xxx.xxx.xxx.xxx] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4-readline_7.4.3-4ubuntu2.13_amd64.deb 404 Not Found [IP: xxx.xxx.xxx.xxx] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4-cli_7.4.3-4ubuntu2.13_amd64.deb 404 Not Found [IP: xxx.xxx.xxx.xxx] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php7.4/libapache2-mod-php7.4_7.4.3-4ubuntu2.13_amd64.deb 404 Not Found [IP: xxx.xxx.xxx.xxx] E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4_7.4.3-4ubuntu2.13_all.deb 404 Not Found [IP: xxx.xxx.xxx.xxx] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
この場合は、apt updateを実行することで、残りのリソースをダウンロードできます。
$ sudo apt update
4. 必要ライブラリのインストール
composerの実行に必要な以下のライブラリをインストールします。これらがインストールされていないと、composer実行時にエラーになりました。
$ sudo apt install php7.4-gd $ sudo apt install php7.4-openssl $ sudo apt install php-xml
5. 再度PHPバージョンを確認
$ php --version PHP 7.4.3 (cli) (built: Nov 2 2022 09:53:44) ( NTS )
composerのセットアップ
インストールとアップデート
ここまでの作業でcomposerの実行準備が整いましたので、インストールとアップデートを行います。
$ composer install $ composer update
動作確認②
再度ブラウザでトップページ(http://localhost:8000/)にアクセスすると、以下のようにトップページを開くことができ、レスポンス速度がかなり改善されていることが分かります。
Visual Studio Codeで開く
WSL上のコマンドラインから起動する
ひとまずWSLの開きたいプロジェクトへ移動し、「code .」でVSCodeを開くことが出来ます。
$ code . Installing VS Code Server for x64 (97dec172d3256f8ca4bfb2143f3f76b503ca0534) Downloading: 100% Unpacking: 100% Unpacked 2389 files and folders to ~/.vscode-server/bin/97dec172d3256f8ca4bfb2143f3f76b503ca0534.
ディレクトリ指定で開く
WSLのディレクトリはWindows上でマウントされていて、例えばホームディレクトリは以下のように指定すると開けます。
\\wsl.localhost\Ubuntu\home\{ユーザー名}\
コメント
コメントを投稿