Elastic Beanstalk 与在 64 位 Amazon Linux 2/3.2.2 和 Dockerrun.aws.json v3 上运行的 Docker

Rab*_*mbu 5 amazon-web-services docker amazon-elastic-beanstalk dockerrun.aws.json

有人可以指出我正确的 Dockerrun.aws.json v3 文档吗?我google了很多次都找不到这个v3文档。

我正在尝试使用在 64 位 Amazon Linux 2/3.2.2 上运行的 Docker 对 Elastic beanstalk 进行多容器部署,但到目前为止尚未成功。

到目前为止,我使用的是 Dockerrun.aws.json v2 格式,该格式似乎不适用于此 docker 平台。

{
  "AWSEBDockerrunVersion": 2,
  "containerDefinitions": [
    {
    "name": "simple-ui",
      "image": "my-image-located-in-ECR",
      "essential": true,
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 3000
        }
      ],
      "command": ["npm","start"]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

以下是我在 EB 日志中看到的错误:

2020/12/09 18:55:34.954345 [错误] 执行命令 [app-deploy] - [Docker 特定构建应用程序] 期间发生错误。停止运行该命令。错误:解析 Dockerrun.aws.json 文件失败,错误 json:无效使用 ,string struct 标记,尝试将未加引号的值解组为 int

2020/12/09 18:55:34.954356 [INFO] 执行清理逻辑 2020/12/09 18:55:34.954437 [INFO] CommandService 响应: {"status":"FAILURE","api_version":"1.0"," results":[{"status":"FAILURE","msg":"引擎执行遇到错误。","re​​turncode":1,"events":[{"msg":"实例部署: 'Dockerrun.源包中的 aws.json' 指定了不受支持的版本。Elastic Beanstalk 仅支持非撰写应用程序的版本 1 和撰写应用程序的版本 3。部署失败。","timestamp":1607540134,"severity":"ERROR"} ,{"msg":"实例部署失败,详情参见'eb-engine.log'。","timestamp":1607540134,"severity":"ERROR"}]}]}

提前谢谢你的帮助。拉宾

Mar*_*cin 5

在 64 位 Amazon Linux 2/3.2.2 上运行的 Docker

您正在使用Docker running on 64bit Amazon Linux 2/3.2.2它,因为错误写入仅用于Dockerrun.aws.json v1.

要使用v2,您必须使用EB平台:

Multi-container Docker running on 64bit Amazon Linux
Run Code Online (Sandbox Code Playgroud)

  • 谢谢最后我最终使用了带有 Dockerrun.aws.json v2 的多容器 docker 平台。AWS 文档称 64 位 Amazon Linux 2 是 docker 平台的较新版本,应该与 docker-compose 和 Dockerrun.aws.json v3 配合使用,但我无法使其与 docker-compose 配合使用,也找不到 v3 的文档。我还将继续更新这篇文章的标题,以更适合此问答,再次感谢。 (4认同)