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

启动Docker容器时出现FileNotFoundError错误的原因咨询

Docker容器中torch.load找不到model.pth文件的原因分析

从你提供的错误日志、Dockerfile和代码来看,这个问题的核心是路径大小写不匹配,结合Linux系统的特性,导致程序找不到目标文件,具体分析如下:

1. 大小写敏感的文件系统(关键原因)

你代码里加载模型的路径是:

best_model = torch.load('./ML/model.pth', map_location='cpu')

这里用的是大写的ML目录,但你的Dockerfile配置中:

COPY ./server/Ml/model.pth /app/Ml/
COPY ./server/Ml/demo.py /app/Ml/

模型文件被复制到了容器内的/app/Ml/目录(小写的l)。

Docker容器基于Linux系统,而Linux文件系统是大小写敏感的,ML和Ml会被识别为两个完全不同的目录,所以程序在./ML/下自然找不到model.pth文件。

2. 相对路径与工作目录的匹配问题

你的Dockerfile设置了WORKDIR /app,容器启动后程序的工作目录就是/app。代码里的./ML/model.pth对应的绝对路径是/app/ML/model.pth,但实际模型文件的位置是/app/Ml/model.pth,路径完全不匹配,这就是触发FileNotFoundError的直接原因。

快速修复方案

你可以任选一种方式解决:

  • 修改代码中的路径,将./ML/model.pth改为./Ml/model.pth,与Dockerfile里的目录名保持一致
  • 修改Dockerfile的COPY路径,把/app/Ml/改为/app/ML/,和代码里的目录名匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 14:17:51