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

Docker构建时COPY指令报错var/www/html文件不存在如何排查

报错原因

这个报错和基础镜像内是否存在/var/www/html路径没有任何关系。
Docker的COPY指令规则很明确:第一个参数是执行构建时,本地构建上下文(也就是你执行docker build命令最后指定的路径,你这里是当前目录.)里的源文件/目录,这个路径必须在本地真实存在,且没有被.dockerignore规则排除;第二个参数才是文件要拷贝到的容器内部目标路径。如果容器内目标路径不存在,COPY指令会自动创建对应目录,根本不会抛出这类错误。
你现在看到的stat var/www/html: file does not exist报错,说明Docker把var/www/html识别成了需要从本地构建上下文查找的源路径,触发原因基本是两类:

  • 你实际编写的Dockerfile里COPY行存在格式错误:要么漏写了本地源路径的文件名,要么目标路径开头的根斜杠/漏写,导致Docker把容器目标路径错当成了本地源路径去查找
  • 你要拷贝的本地源file不存在于执行build命令的当前目录,同时路径书写不规范触发了解析错误
解决方法

按以下顺序排查修复即可:

  1. 先确认你执行docker build -t sql:sql .命令的当前目录下,真实存在你要拷贝的名为file的文件/目录,不要把要拷贝的资源放在Dockerfile所在目录的上级路径,Docker构建时无法访问上下文目录外的文件
  2. 检查当前目录下的.dockerignore文件,确认没有规则把file目录/文件排除在外
  3. 修正Dockerfile的COPY指令,明确写清本地源相对路径、容器内绝对路径,拷贝目录时建议结尾加斜杠避免歧义,修正后的参考内容如下:
FROM 1275178869/base_image_apache_php_mysql:sjx 

COPY ./file/ /var/www/html/

RUN rm -f /var/www/html/index.html

EXPOSE 80
  1. 保存修改后重新执行构建命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:34:01