Dockerfile COPY指令失败排查:React应用Docker镜像构建报错
排查Docker COPY指令失败的原因
React项目未生成build目录
必须先在React项目根目录执行构建命令生成静态产物:npm run build执行完成后,项目根目录会生成
build文件夹,这是COPY指令需要的源文件。如果跳过这一步,自然找不到目标文件。Docker构建上下文与路径不匹配
Docker的COPY指令默认基于构建上下文目录(即执行docker build命令时所在的目录)查找文件,你的Dockerfile中COPY /app/build $myapp用了绝对路径,会被Docker识别为宿主机的系统绝对路径,而非构建上下文内的路径。
假设你的项目结构是:项目根目录/ ├── app/ │ └── build/ # React构建产物 ├── Docker/ │ ├── run.sh │ └── httpd.conf └── Dockerfile你需要在项目根目录执行
docker build .(注意末尾的.,指定构建上下文为当前目录),同时将COPY指令修改为相对路径:COPY app/build $myapp COPY Docker/run.sh $SRVROOT COPY Docker/httpd.conf $SRVROOT/conf/.dockerignore文件排除了build目录
检查项目根目录的.dockerignore文件,如果其中包含build或app/build规则,会导致Docker构建时主动忽略该目录,需要删除对应的排除条目。基础镜像路径错误(附带问题)
你的Dockerfile第一行FROM /httpd:2.4.38多了前置斜杠,正确写法应为:FROM httpd:2.4.38虽然这不是当前COPY错误的直接原因,但会导致后续镜像拉取失败,建议一并修正。
内容的提问来源于stack exchange,提问作者Chilled Shark
相关产品推荐
相关产品推荐

