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

Docker以GitHub为构建上下文时COPY . 触发文件找不到错误

问题根因

旧版本Docker存在行为差异:COPY单个文件到不存在的目标目录时,会自动创建目标目录;但COPY整个目录(你这里源是.即构建上下文根目录)到不存在的目标目录时,不会自动创建,直接触发路径不存在报错。
你之前COPY单个requirements.txt时触发了自动创建目录的逻辑,所以构建正常,替换成COPY整个上下文后就触发了报错。

另外也可以排查两个潜在问题:

  • 你的GitHub仓库根目录下的.dockerignore文件是否排除了除requirements.txt外的所有必要文件,如果需要保留特定目录/文件,要添加!目录名/、!文件名的例外规则
  • 你填写的GitHub上下文URL是否为仓库根地址,不要携带/tree/main/xxx这类子目录后缀

解决方案

方案1:提前创建目标目录

在COPY指令前新增创建目录的指令即可:

FROM python:3.8.12-slim-buster

RUN apt-get update

RUN yes | apt-get install python3-dev build-essential

RUN pip install --upgrade pip

# 提前创建目标目录
RUN mkdir -p /rasa_traind/

COPY . /rasa_traind/

RUN pip install -r /rasa_traind/requirements.txt

WORKDIR /rasa_traind/rasa_actions_server/

CMD ["rasa", "run"]

方案2:提前指定WORKDIR(更推荐)

WORKDIR指令会自动创建不存在的目录,调整指令顺序即可:

FROM python:3.8.12-slim-buster

RUN apt-get update

RUN yes | apt-get install python3-dev build-essential

RUN pip install --upgrade pip

# 提前指定工作目录,不存在会自动创建
WORKDIR /rasa_traind/

# 直接把上下文内容复制到当前工作目录
COPY . ./

RUN pip install -r requirements.txt

WORKDIR /rasa_traind/rasa_actions_server/

CMD ["rasa", "run"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:36:03