You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laradock重建镜像后在Workspace中无法查看WSL2内项目文件

Laradock WSL2 重建镜像后项目文件挂载异常的排查与解决

核心问题定位

WSL2中项目根目录与Laradock目录同级,APP_CODE_PATH_HOST配置为../,但Workspace容器内仅能看到Laradock文件夹,偶尔出现的项目文件夹为空,Docker Desktop显示挂载配置正常,大概率是WSL2与Docker的权限映射、文件系统同步问题。


1. 验证WSL2文件系统与Docker集成状态

  • 在WSL2终端执行,确认项目根目录权限:
    ls -ld /home/[username]/[project_name]
    
    确保所有者是当前WSL用户(非root),权限至少为755。
  • 打开Docker Desktop,进入「设置」→「Resources」→「WSL Integration」,确认当前使用的WSL发行版(如Ubuntu)处于开启状态,重启Docker Desktop生效。

2. 修正Laradock挂载配置与权限映射

  • 打开Laradock目录下的.env文件:
    • 将APP_CODE_PATH_HOST从相对路径改为WSL2绝对路径,避免解析错误:
      APP_CODE_PATH_HOST=/home/[username]/[project_name]
      
    • 添加用户UID/GID映射,消除容器内权限不匹配:
      先在WSL2终端获取当前用户的UID和GID:
      id -u  # 输出UID,如1000
      id -g  # 输出GID,如1000
      
      然后在.env中设置:
      WORKSPACE_PUID=1000
      WORKSPACE_PGID=1000
      
  • 重新构建并启动Workspace容器:
    docker-compose build workspace
    docker-compose up -d workspace
    

3. 清理Docker无效缓存与挂载卷

  • 彻底停止并清理Laradock容器及关联卷:
    docker-compose down -v
    
  • 删除Docker中未使用的卷:
    docker volume prune
    
  • 清理Docker未使用的镜像(谨慎操作,确认后输入y):
    docker system prune -a
    
  • 重启WSL2与Docker Desktop:
    在Windows终端执行:
    wsl --shutdown
    
    重新打开WSL2终端后,再启动Docker Desktop。

4. 测试挂载有效性

  • 在WSL2项目根目录创建测试文件:
    echo "test mount content" > /home/[username]/[project_name]/test-mount.txt
    
  • 进入Workspace容器验证:
    docker-compose exec workspace bash
    ls /var/www
    
    若能看到test-mount.txt,说明挂载正常;若项目目录存在但文件为空,执行容器内权限修复:
    chown -R 1000:1000 /var/www  # 替换为你的UID/GID
    

内容的提问来源于stack exchange,提问作者Trekstler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:27:34