Elastic Beanstalk with Docker 运行 on 64bit Amazon Linux 2/3.2.2 and 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 文档吗?
我做了 google 很多次,但找不到这个 v3 文档。
我正在尝试对 elastic beanstalk 进行多容器部署
Docker 运行 在 64 位亚马逊上 Linux 2/3.2.2 但到目前为止未成功。
到目前为止,我使用的是 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 [ERROR] An error occurred during execution
of command [app-deploy] - [Docker Specific Build Application]. Stop
running the command. Error: parse Dockerrun.aws.json file failed with
error json: invalid use of ,string struct tag, trying to unmarshal
unquoted value into int
2020/12/09 18:55:34.954356 [INFO] Executing cleanup logic 2020/12/09
18:55:34.954437 [INFO] CommandService Response:
{"status":"FAILURE","api_version":"1.0","results":[{"status":"FAILURE","msg":"Engine
execution has encountered an
error.","returncode":1,"events":[{"msg":"Instance deployment:
'Dockerrun.aws.json' in your source bundle specifies an unsupported
version. Elastic Beanstalk only supports version 1 for non compose app
and version 3 for compose app. The deployment
failed.","timestamp":1607540134,"severity":"ERROR"},{"msg":"Instance
deployment failed. For details, see
'eb-engine.log'.","timestamp":1607540134,"severity":"ERROR"}]}]}
提前感谢您的帮助。
拉宾
Docker running on 64bit Amazon 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 平台中找到的功能。但是,正如您在上面注意到的那样,文档非常混乱。查看此堆栈溢出 post 了解更多详细信息。
使用 64 位 Amazon Linux2 对于多容器设置,确保 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”然后部署了
然后,奇怪的是,显示了以下消息。
Instance deployment: 'Dockerrun.aws.json' in your source bundle
specifies an unsupported version. Elastic Beanstalk only supports
version 1 for non compose app and version 3 for compose app. The
deployment failed.
这意味着您可以只使用 json 版本 1 for Amazon Linux 2 个 AMI。
有人可以指点我正确的 Dockerrun.aws.json v3 文档吗? 我做了 google 很多次,但找不到这个 v3 文档。
我正在尝试对 elastic beanstalk 进行多容器部署 Docker 运行 在 64 位亚马逊上 Linux 2/3.2.2 但到目前为止未成功。
到目前为止,我使用的是 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 [ERROR] An error occurred during execution of command [app-deploy] - [Docker Specific Build Application]. Stop running the command. Error: parse Dockerrun.aws.json file failed with error json: invalid use of ,string struct tag, trying to unmarshal unquoted value into int
2020/12/09 18:55:34.954356 [INFO] Executing cleanup logic 2020/12/09 18:55:34.954437 [INFO] CommandService Response: {"status":"FAILURE","api_version":"1.0","results":[{"status":"FAILURE","msg":"Engine execution has encountered an error.","returncode":1,"events":[{"msg":"Instance deployment: 'Dockerrun.aws.json' in your source bundle specifies an unsupported version. Elastic Beanstalk only supports version 1 for non compose app and version 3 for compose app. The deployment failed.","timestamp":1607540134,"severity":"ERROR"},{"msg":"Instance deployment failed. For details, see 'eb-engine.log'.","timestamp":1607540134,"severity":"ERROR"}]}]}
提前感谢您的帮助。 拉宾
Docker running on 64bit Amazon 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 平台中找到的功能。但是,正如您在上面注意到的那样,文档非常混乱。查看此堆栈溢出 post 了解更多详细信息。
使用 64 位 Amazon Linux2 对于多容器设置,确保 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”然后部署了
然后,奇怪的是,显示了以下消息。
Instance deployment: 'Dockerrun.aws.json' in your source bundle specifies an unsupported version. Elastic Beanstalk only supports version 1 for non compose app and version 3 for compose app. The deployment failed.
这意味着您可以只使用 json 版本 1 for Amazon Linux 2 个 AMI。