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

我的Dockerfile是否正确配置为在5000端口提供React.js构建产物服务?

问题核心原因

你容器内的serve服务实际监听的是3000端口,而非你预期的5000端口。
EXPOSE 5000只是Docker提供的端口声明元数据,不会对服务实际监听的端口产生任何约束。你使用docker run -p 5000:5000是将宿主机的5000端口映射到了容器的5000端口,但容器内没有服务在5000端口监听,自然无法访问。

修复方案

两种方案任选其一即可:

  • 修改Dockerfile中的CMD指令,显式指定serve的监听端口为5000
    把原有CMD serve -s -n build修改为:
    CMD serve -s -n build -l 5000
    
    修改后重新构建镜像即可正常按照预期在5000端口运行。
  • 不修改镜像,直接调整端口映射规则
    启动容器时将宿主机5000端口映射到容器内实际监听的3000端口,启动命令改为:
    docker run -p 5000:3000
    
额外说明

版本回退后出现该差异,是因为不同版本的serve工具默认监听端口不同:旧版serve默认端口为5000,新版默认改成了3000。你回退Node版本后重新全局安装的serve是最新版本,才出现了和之前不一致的表现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:06:07