求助:AWS Beanstalk URL无法加载Docker化React应用
问题排查与解决
首先看你的Dockerfile,COPY命令存在格式错误:
COPY --from=builder /app/build /usr/share/nginx/html
你把目标路径拆成换行加缩进的写法,导致目标路径前带有多余空格,Docker会将其识别为 /usr/share/nginx/html(带前导空格的路径),而非正确的/usr/share/nginx/html。这会导致React构建产物根本没复制到Nginx的默认静态文件目录,自然无法加载页面。
修正后的Dockerfile
FROM node:16-alpine as builder WORKDIR '/app' COPY package.json . RUN npm install COPY . . RUN npm run build FROM nginx EXPOSE 80 COPY --from=builder /app/build /usr/share/nginx/html
将COPY命令的两个路径放在同一行,避免因换行缩进产生路径歧义。
额外排查方向
- 检查AWS Beanstalk环境的安全组,确认入站规则允许HTTP(80端口)流量从0.0.0.0/0或你的IP访问
- 登录Beanstalk关联的EC2实例,查看Nginx日志定位问题:
- 查看访问日志:
tail -f /var/log/nginx/access.log - 查看错误日志:
tail -f /var/log/nginx/error.log - 检查
/usr/share/nginx/html目录下是否存在React构建后的静态文件(比如index.html)
- 查看访问日志:
- 确认React应用
package.json中的homepage配置是否正确,若设置了自定义路径,需调整Nginx配置或Beanstalk路由规则
内容的提问来源于stack exchange,提问作者Muhammad Hussain
相关产品推荐
相关产品推荐

