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

Docker部署React应用访问报ERR_EMPTY_RESPONSE错误求助

问题排查结论

出现ERR_EMPTY_RESPONSE是两个核心配置错误叠加导致,附带一个Dockerfile语法错误:

  • 核心原因1:React官方脚手架create-react-app的yarn start开发服务默认仅监听容器内部环回地址127.0.0.1,不对外暴露端口,宿主机的映射请求无法触达服务。
  • 核心原因2:Dockerfile中ENV指令语法错误,等号两侧加了空格,导致配置的所有环境变量都没有被正确注入。
  • 附加问题:Dockerfile复制文件顺序不合理,浪费构建缓存,同时复制yarn和npm的锁文件会导致依赖安装逻辑冲突。
修复步骤

1. 替换Dockerfile配置

FROM node:16

# ENV赋值等号两侧不要加空格
ENV REACT_APP_baseUrl=https://localhost:44377/api
ENV REACT_APP_baseUrlFile=https://localhost:3000/files
ENV REACT_APP_baseUrlFileMetadata=https://localhost:3000/files/metaData
ENV REACT_APP_FILESTORAGE_KEY=./fileStorage.key
ENV REACT_APP_FILESTORAGE_PEM=./fileStorage.pem
ENV REACT_APP_ROOT_CA=./rootCA.pem
ENV REACT_APP_baseUrlReact=http://localhost:8080
# 强制React开发服务监听所有网卡地址,允许外部访问
ENV HOST=0.0.0.0

WORKDIR /app-ui

# 优先复制依赖声明文件,复用Docker构建缓存,依赖未变更时不重复安装
COPY package.json yarn.lock ./
# 若使用npm作为包管理器,替换为复制package-lock.json,不要同时复制两个锁文件
# COPY package.json package-lock.json ./

RUN yarn install
# npm用户替换为 RUN npm install

# 依赖安装完成后再复制业务代码,修改业务代码无需重新安装依赖
COPY . .

EXPOSE 8080
CMD ["yarn", "start"]
# npm用户替换为 CMD ["npm", "start"]

2. 重新构建并启动容器

执行以下命令清理旧资源后重新部署:

# 删除之前创建的异常容器
docker rm -f client
# 重新构建镜像
docker build -f Dockerfile -t client .
# 启动容器
docker run -it -p 8080:8080 client

容器启动后日志出现Compiled successfully提示时,直接访问http://localhost:8080即可正常加载页面。

生产环境部署提示

当前配置启动的是React开发服务,仅适合本地调试使用,性能、稳定性、安全性都达不到生产要求。生产环境建议执行yarn build打包生成静态资源,使用Nginx等Web服务器托管资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 23:36:36