簡體   English   中英

Elastic Beanstalk 與 Docker 在 64 位 Amazon Linux 2/3.2.2 和 Dockerrun.aws.json v3 上運行

[英]Elastic Beanstalk with Docker running on 64bit Amazon Linux 2/3.2.2 and Dockerrun.aws.json v3

有人可以指點我正確的 Dockerrun.aws.json v3 文檔。 我已經谷歌了很多次,但找不到這個 v3 文檔。

我正在嘗試使用在 64 位 Amazon Linux 2/3.2.2 上運行的 Docker 對彈性 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"]
    }
  ]
}

以下是我在 EB 日志中看到的錯誤:

2020/12/09 18:55:34.954345 [錯誤] 執行命令 [app-deploy] - [Docker 特定構建應用程序] 期間發生錯誤。 停止運行命令。 錯誤:解析 Dockerrun.aws.json 文件失敗,錯誤為 json:無效使用,字符串結構標記,試圖將未加引號的值解組為 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":"引擎執行遇到錯誤。","returncode":1,"events":[{"msg":"實例部署:'Dockerrun.源包中的 aws.json' 指定了一個不受支持的版本。Elastic Beanstalk 僅支持非 compose 應用程序的版本 1 和 compose 應用程序的版本 3。部署失敗。","timestamp":1607540134,"severity":"ERROR"} ,{"msg":"實例部署失敗,詳情參見'eb-engine.log'。","timestamp":1607540134,"severity":"ERROR"}]}]}

提前謝謝你的幫助。 拉賓

Docker 運行在 64 位亞馬遜 Linux 2/3.2.2

您正在使用Docker running on 64bit Amazon Linux 2/3.2.2 ,作為錯誤寫入,它僅用於Dockerrun.aws.json v1

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

Multi-container Docker running on 64bit Amazon Linux

多容器 docker 平台已被棄用,並且缺少許多您可以在 EB 上的普通 jane Docker 平台中找到的功能。 但是,正如您在上面注意到的那樣,這些文檔非常令人困惑。 查看此堆棧溢出帖子以獲取更多詳細信息。

如何使用 Amazon linux 2 在 Elastic beanstalk 中使用多容器 docker?

使用 64 位 Amazon Linux 2 進行多容器設置,確保 elasticbeanstalk buildspec.yml具有這兩個文件工件非常重要

artifacts:
    files: 
      - 'Dockerrun.aws.json'
      - 'docker-compose.yml'`

您可以通過以下方式驗證文件是否在源中:

Elastic Beanstalk > 應用程序 > { 應用程序名稱 } > 應用程序版本

然后單擊最新應用程序的源以下載該文件夾。

我只是將 Dockerrun.aws.json 發送到 EBS,然后想知道為什么我遇到了與您相同的 v1 v3 錯誤。 事后看來,這很有意義,需要 docker-compose.yml。

我也有同樣的擔憂。 我將版本1的“Dockerrun.aws.json”中“AWSEBDockerrunVersion”的值改為“3”,然后部署。

然后,奇怪的是,顯示了以下消息。

實例部署:源包中的“Dockerrun.aws.json”指定了不受支持的版本。 Elastic Beanstalk 僅支持非撰寫應用程序的版本 1 和撰寫應用程序的版本 3。 部署失敗。

這意味着您可以只為 Amazon Linux 2 AMI 使用 json 版本 1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM