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

Elastic Beanstalk部署Docker应用报Dockerrun.aws.json版本错误

问题根因
  • 你选用的64bit Amazon Linux 2 v3.4.16 running Docker平台不支持Dockerrun.aws.json v2格式,该格式是旧版Amazon Linux 1 Multi-Container Docker平台的遗留规范,在Amazon Linux 2平台上已被废弃。
  • 报错中提到的"v3版本"并非Dockerrun.aws.json的格式版本,Amazon Linux 2 Docker平台的多容器编排不再使用Dockerrun.aws.json作为配置文件,因此没有公开的v3格式定义。
  • 你使用的转换工具生成的是适配旧平台的配置,无法在新平台上运行,这也是本地运行和云端部署同时报版本错误的核心原因。
可落地解决方案

方案一:使用Amazon Linux 2平台原生Docker Compose支持(推荐,兼容eb local命令)

  1. 废弃现有转换生成的Dockerrun.aws.json文件,直接在项目根目录放置标准的docker-compose.yml配置文件,Amazon Linux 2 Docker平台会原生识别该文件并完成多容器部署。
  2. 配置调整要点:
    • 删除原配置中所有links字段,平台内置的DNS会自动解析服务名,容器之间直接使用服务名即可互通
    • 仅保留Nginx服务的80端口主机映射,EB负载均衡会自动将公网流量转发到该端口
    • 部署包中不要残留Dockerrun.aws.json文件,避免平台误判配置格式
  3. 配置完成后,本地执行eb local run即可正常启动全栈环境验证,执行eb deploy即可完成云端部署。

方案二:回退到旧版Amazon Linux 1平台(不推荐)

如果必须使用已生成的v2版本Dockerrun.aws.json,需要将EB平台切换为64bit Amazon Linux running Multi-container Docker版本。该平台基于已停止主流支持的Amazon Linux 1,存在安全隐患,后续会逐步停止服务。

额外配置避坑
  • 不建议在EB实例内部署PostgreSQL数据库:EB实例重建、版本更新时会清空实例本地存储,造成数据库数据丢失,生产环境请使用独立的RDS数据库服务,通过安全组配置网络互通即可。
  • 你当前配置中使用的alpine:python、nodejs镜像无官方对应标签,部署时会出现镜像拉取失败,请替换为正确的官方镜像标签,例如python:3.11-alpine、node:18-alpine。

内容的提问来源于stack exchange,提问作者Daniel N.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:07:04