😀

WSL環境でpuma-devを使えるようにする

2023/05/09に公開

はじめに

最近、Windows×WSL環境で、puma-devを用いた開発案件に携わる機会がありました。
WindowsとWSL環境だと設定難易度が高かったため、個人的にもメモしておきます。

環境:

  • Windows 11
  • Ubuntu 22.04.2 LTS

Step.1 puma-devをUbuntu上にInstall

公式の言うことを聞いて、Ubuntu上にpuma-devを入れます。
Linux Supportの欄の通り設定をして、puma-devが起動できたらOKです。

https://github.com/puma/puma-dev

puma-devが起動できていれば、wsl上でpingを叩くと返ってくるはずです。

> puma-dev -http-port 80 -https-port 443

2023/05/09 01:19:59 Existing valid puma-dev CA keypair found. Assuming previously trusted.
* Directory for apps: /home/user/.puma-dev
* Domains: test
* HTTP Server port: 80
* HTTPS Server port: 443
! Puma dev listening on http and https

> ping hogehoge.test

PING hogehoge.test(ip6-localhost (::1)) 56 data bytes
64 bytes from ip6-localhost (::1): icmp_seq=1 ttl=64 time=0.398 ms
64 bytes from ip6-localhost (::1): icmp_seq=2 ttl=64 time=0.045 ms
64 bytes from ip6-localhost (::1): icmp_seq=3 ttl=64 time=0.032 ms
64 bytes from ip6-localhost (::1): icmp_seq=4 ttl=64 time=0.034 ms
64 bytes from ip6-localhost (::1): icmp_seq=5 ttl=64 time=0.035 ms
64 bytes from ip6-localhost (::1): icmp_seq=6 ttl=64 time=0.033 ms
64 bytes from ip6-localhost (::1): icmp_seq=7 ttl=64 time=0.038 ms

--- hogehoge.test ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6244ms
rtt min/avg/max/mdev = 0.032/0.087/0.398/0.126 ms

Step.2 windows側のhostファイルに追加

WSL上ではなく、Windows側のhostファイルに追加します。
Windowsのhostファイルは、 C:\WINDOWS\system32\drivers\etc\hosts に存在するので、管理者権限付きのメモ帳などで開いてください。

https://onoredekaiketsu.com/howto-change-hosts-file-of-windows10/

上記のファイル内で、以下のように追記します。
WSL上とWindowsは基本的にipv6でやり取りをするようなので、 ::1 にバイパスすればOKのようです。

# 文末にでも追加
::1 hogehoge.test
::1 hogehoge2.test
::1 hogehoge3.test
...

Powershell上でpingをしたら、設定があっているか確認ができます(::1に対して飛ぶ)

> ping hogehoge.test

hogehoge.test [::1]に ping を送信しています 32 バイトのデータ:
::1 からの応答: 時間 <1ms
::1 からの応答: 時間 <1ms
::1 からの応答: 時間 <1ms
::1 からの応答: 時間 <1ms

::1 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms

これで、Windows → WSL上が完了になるため、WSL上のpuma-devに対してアクセスされ、Windowsのブラウザ側でも、puma-devを経由した内容が表示されるようになります。

Discussion