Docker+WSL2环境开发Laravel应用时如何编辑项目源代码
WSL2 + Laravel Sail 源码编辑与IDE适配方案
你跑的这套Sail初始化流程默认已经做好了目录双向挂载,根本不需要额外手动调整Docker挂载规则,按下面的步骤操作就能用任意IDE写代码,修改实时生效:
- 先理清楚默认的同步逻辑:你在WSL里创建的
example-app项目目录,执行./vendor/bin/sail up启动容器时,已经自动把整个项目目录双向映射到容器内的/var/www/html应用运行目录,所有对WSL内项目文件的增删改都会实时同步到容器,正常情况下刷新浏览器就能看到改动,不存在容器隔离导致的修改不生效问题。
Windows端访问WSL项目的具体操作
- 打开WSL终端,进入
example-app项目根目录,执行下面的命令:
explorer.exe .
命令执行后会直接弹出Windows资源管理器窗口,展示的就是WSL里的项目全部文件,此时资源管理器地址栏里\\wsl$\开头的路径,就是Windows原生访问WSL文件的官方入口。
2. 打开你自己常用的任意IDE,在「打开文件夹/项目」的路径选择框里,直接输入上面这个\\wsl$\开头的项目完整路径,选中项目根目录打开就行。之后所有代码编辑、文件操作都会直接写入WSL环境,自动同步到运行中的Sail容器,不需要做任何额外的文件传输、挂载操作。
避坑提示
- 绝对不要把WSL里的项目复制到Windows的C/D盘等NTFS分区里再编辑,这么做会导致文件权限错乱、IO性能暴跌,还会破坏Sail默认的同步规则。直接通过
\\wsl$路径访问是WSL2原生支持的方式,编辑性能和操作本地磁盘没有明显差异。 - 如果改了路由、服务配置、环境变量这类文件后没看到效果,在WSL的项目目录下执行
./vendor/bin/sail restart重启容器即可;如果是前端资源修改不生效,跑对应前端构建命令清缓存就行。 - 不用去改
docker-compose.yml里的挂载配置,Sail默认的挂载规则已经覆盖了本地开发的所有同步需求,你之前的部署步骤没漏东西,只是没找到Windows访问WSL文件的入口而已。
内容的提问来源于stack exchange,提问作者lot
相关产品推荐
相关产品推荐

