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

WSL2环境下执行docker-compose up --build报unable to prepare context错误

问题原因

报错里出现\\wsl$\开头的Windows UNC路径,本质是Docker的构建上下文路径识别异常,常见触发原因有两个:

  1. 你在Windows端的终端(CMD/PowerShell)执行docker-compose命令,Windows自动将WSL内的项目路径转换为UNC格式,Linux版Docker引擎无法识别该路径格式
  2. Docker Desktop的WSL2集成未正确开启,导致Docker无法直接读取WSL2内的文件系统
解决方案

按以下步骤逐一排查即可解决:

  • 首先确认执行命令的终端环境
    必须在WSL2的Ubuntu-20.04终端内执行所有docker相关命令,执行pwd确认当前路径输出为/home/vendasky/Projects/sql-gui这类Linux标准路径,不要在Windows终端中操作WSL内的Docker项目。
  • 开启Docker Desktop的WSL2集成
    打开Docker Desktop设置面板,依次进入「资源」-「WSL集成」,打开Ubuntu-20.04对应的集成开关,修改后重启Docker Desktop生效。
  • 修正docker-compose.yaml配置冲突
    你当前的php服务同时配置了build和image字段,会导致镜像命名冲突,删除image: php:fpm行即可,修改后配置如下:
    php:
      build:
        context: .
        dockerfile: Dockerfile
      volumes:
          - ./src:/src
      networks:
          - code-network
    
  • 清理缓存重新构建
    执行以下命令清理历史容器缓存后重新构建:
    docker-compose down -v
    docker-compose up --build
    
额外优化建议

你当前mariadb的挂载路径直接用了根目录下的/var/lib/mysql,WSL2内建议改成项目内的相对路径,避免跨文件系统的权限和性能问题,修改示例:

volumes:
  - ./mariadb/data:/data
  - ./mariadb/logs:/logs
  - ./mariadb/conf:/etc/mysql

内容的提问来源于stack exchange,提问作者Václav Pavlíček

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:36:03