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

Elastic Beanstalk出现502 Bad Gateway错误 Docker+Travis CI部署场景求解

问题排查与解决方案

1. 修正Dockerfile端口配置

你的Node应用实际监听端口为3000(从测试命令docker run -e CI=true -p 80:3000 brijesh:latest npm run test可验证),但Dockerfile中错误暴露了80端口,需修改:

FROM node:alpine
WORKDIR '/app'
COPY ./package.json ./
RUN npm install
COPY . .
# 修改为应用实际监听的3000端口
EXPOSE 3000
# 同时确认package.json中start命令启动的服务监听0.0.0.0:3000,不要绑定127.0.0.1
CMD ["npm", "run", "start"]

2. 修正Travis CI配置缩进错误

YAML配置对缩进高度敏感,你提供的.travis.yml中deploy段下的所有配置都缺少缩进,会导致部署配置不生效,修正后配置如下:

language: generic
sudo: required
services:
- docker
# Build testing container
before_install:
- docker build -t brijesh -f Dockerfile.dev  .
# Run Tests
script:
- docker run -e CI=true -p 80:3000  brijesh:latest npm run test -- --coverage
deploy:
  provider: elasticbeanstalk
  region: "ap-south-1"
  app: "docker"
  env: "Docker-env"
  bucket_name: "elasticbeanstalk-ap-south-1-532163291253"
  bucket_path: "docker"
  on:
    branch: master
  access_key_id: $access_key
  secret_access_key: $secret_key

3. 新增端口映射配置(针对Amazon Linux 2 Docker平台)

如果你使用的是Amazon Linux 2版本的Elastic Beanstalk Docker平台,需要在项目根目录新增Dockerrun.aws.json文件,指定反向代理的端口映射规则:

{
  "AWSEBDockerrunVersion": "1",
  "Ports": [
    {
      "ContainerPort": 3000,
      "HostPort": 80
    }
  ]
}

4. 服务运行异常排查

如果修改后仍报错,可登录Elastic Beanstalk关联的EC2实例,执行以下命令排查容器运行状态:

  • 查看运行中容器:docker ps
  • 查看容器启动日志:docker logs <你的容器ID>
  • 确认EC2实例安全组是否开放了80端口入站规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:36:04