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

Docker化Python项目编写Dockerfile报错找不到save_model.py问题求助

Dockerfile 错误修正方案

核心错误原因

  • Docker 构建时只能读取构建上下文目录(也就是你执行docker build命令时所在的目录)内的文件,你直接填写本地主机的绝对路径/home/pc/Desktop/yolo4_deep是无效的,构建过程中无法访问这个路径
  • 容器内部文件系统与本地主机完全隔离,不需要把容器内的WORKDIR设置成和你本地路径一致,两者没有关联,设置成你本地的路径也找不到对应文件
  • WORKDIR app是相对路径写法,实际生成的容器内工作目录为/<上一级工作目录>/app,不确定性高,建议用绝对路径/app更稳妥
  • 路径对应关系错配:你已经把文件复制到工作目录后,CMD 指令不需要再加./app前缀,要么直接写文件名(相对WORKDIR),要么写绝对路径
  • 你本地源码存放在src目录下,复制时需要指定src目录作为源路径,而不是本地主机的绝对路径

修改后的Dockerfile

# syntax=docker/dockerfile:1

FROM tensorflow/serving:2.3.0-rc0-devel-gpu

# 明确指定容器内的绝对工作目录
WORKDIR /app

# 复制依赖文件到工作目录,源路径为相对于构建上下文的相对路径
# 如果你的依赖文件名是requirements.txt,将下方的requirements-gpu.txt替换即可
COPY requirements-gpu.txt .

# 安装依赖
RUN pip install -r requirements-gpu.txt

# 把本地src目录下的所有内容复制到容器内的当前工作目录(/app)
COPY ./src .

# 容器启动命令,直接写相对于WORKDIR的文件名即可
CMD ["python", "save_model.py", "object_tracker.py"]

构建运行注意事项

  • 执行docker build命令的位置必须是Dockerfile所在的目录,此时构建上下文就是该目录,能正确读取到同目录下的依赖文件和src目录
  • 如需排查文件是否正常复制到容器内,可执行命令启动容器进入bash查看文件列表:docker run -it --rm <你的镜像名称> bash,进入容器后执行ls /app即可确认文件是否存在

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:15:01