Windows端末でDocker、RevelでHot reloadさせる
RevelがHot reloadせずに、修正の都度、Dockerをリスタートさせて非常に効率が悪かったので、
Hot reloadさせるために行った対応を記載します。
動作確認環境
- Windows 10
- Docker version 20.10.5
- Revel V1.0.0
Dockerを使用してhostとコンテナのファイル共有がNFSで行われている場合、
ファイル変更の通知が行われずに、Revelのhot reloadの対象となりません。
LinuxやmacOSでは発生すると記載されていませんが、
Windows環境では発生事例がGithubのIssueに登録されてます。
- Hotreload does not work for an docker/vagrant environment
- Edit notifications don't work when running inside of Docker container on Windows
Windowsの場合、以下の方法でhot reloadさせる事が出来ます。
-
WSLをインストールする
- Ubuntu 20.04 LTSをインストールする
- WSLの Ubuntuをターミナルで立ち上げる
- WSLの任意のディレクトリーに git clone でソースを取得する
- WSLのターミナルからDockerを立ち上げる
- ファイルを修正して、hot reloadが実行されることを確認する
HostコンピューターからWSLのファイルを開く方法
- エクスプローラーから \wsl$ でアクセス出来る
- ターミナルからはWSL側のファイルには、//wsl$/Ubuntu でアクセス出来る