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

Docker COPY命令异常:运行镜像时无法找到CSV配置文件

解决方案

核心问题

你的Dockerfile将文件复制到了根目录/,但设置的WORKDIR是/NoLegals,而代码用os.getcwd()获取当前工作目录(即/NoLegals)拼接文件路径,导致代码查找/NoLegals/NoLegals_Config.csv,但实际文件在/NoLegals_Config.csv,自然找不到。另外报错出现本地路径,说明代码可能存在硬编码路径的情况。

步骤1:修正Dockerfile的COPY命令

修改Dockerfile,把所有文件复制到WORKDIR指定的目录下(.代表当前工作目录/NoLegals):

WORKDIR /NoLegals
# 复制文件到当前工作目录,而非根目录
COPY NoLegals_Config.csv .
COPY main.py .
COPY utils.py .
# 后续环境配置、运行命令等保持不变

步骤2:排查代码中的硬编码路径

报错里出现本地路径/home/crusty.user/PythonProjects/NoLegals/NoLegals_Config.csv,说明代码中可能有部分逻辑没使用你写的filepath变量,而是直接写死了本地路径。全局搜索该路径,替换为动态生成的filepath:

# 确保所有读取CSV的代码都使用这个filepath
filename = r'NoLegals_Config.csv'
filepath = os.path.join(os.getcwd(), filename)
# 读取文件示例
with open(filepath, 'r') as f:
    # 处理逻辑

步骤3:验证容器内文件位置(可选)

如果问题仍存在,可运行交互式容器检查文件位置:

sudo docker run -it nolegals bash

进入容器后执行以下命令:

  • pwd:确认当前工作目录是否为/NoLegals
  • ls:查看当前目录下是否存在NoLegals_Config.csv、main.py等文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:30:44