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

Windows下Docker挂载NAS目录报错:寻求文件找不到问题的解决方案

问题:Docker-Compose执行up时找不到manage.py(NAS映射路径场景)

在Windows系统执行docker-compose up时出现错误:

python: can't open file '/code/manage.py': [Errno 2] No such file or directory

已排除Python、Django或本地路径配置问题,仅当项目存放在WiFi连接的西数MyCloudX2Ultra Linux NAS(通过Windows映射为网络驱动器,如N:盘对应\\<本地IP>\...)时触发该问题,将项目移至本地Windows文件夹即可解决,但本地SSD空间不足无法长期使用。

相关配置文件

Dockerfile

# Pull base image
FROM python:3.10.4-slim-bullseye

# Set environment variables
ENV PIP_DISABLE_PIP_VERSION_CHECK 1
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# Set work directory
WORKDIR /code

# Install dependencies
COPY ./requirements.txt .
RUN pip install -r requirements.txt

# Copy project
COPY . .

docker-compose.yml

version: "3.9"
services:
  web:
    build: .
    ports:
      - "8000:8000"
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code  

可行解决方案建议

  • 优化NAS权限与映射方式

    • 确保NAS共享文件夹给Windows用户开放完全控制权限(含读、写、执行),避免容器访问时因权限不足无法识别文件。
    • 放弃网络驱动器盘符映射,直接用UNC路径挂载,修改docker-compose.yml的volumes配置:
      volumes:
        - "//<NAS本地IP>/共享文件夹路径:/code"
      
      (或转义反斜杠写法:"\\\\<NAS本地IP>\\共享文件夹路径:/code")
  • 调整容器构建逻辑
    删除docker-compose.yml中的volumes字段,依赖Dockerfile里的COPY . .将代码打包进镜像,容器启动时直接使用镜像内的文件,彻底规避远程文件系统映射问题。缺点是代码变更后需要重新构建镜像。

  • 修复SMB协议与系统设置

    • 在NAS端调整SMB版本为3.0及以上,提升与Windows的兼容性,避免因协议过低导致文件映射不完整。
    • 关闭Windows快速启动功能,该功能可能导致网络驱动器挂载异常,影响Docker对远程文件的访问。
  • 硬编码NAS绝对路径
    如果必须使用挂载,直接在docker-compose.yml中写NAS的UNC绝对路径,替代依赖网络驱动器盘符:

    services:
      web:
        # ...其他配置
        volumes:
          - "//192.168.1.100/my_project:/code"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:32:37