目前,亚马逊弃用了
Multi-container Docker running on 64bit Amazon Linux
。需要迁移到Docker running on 64bit Amazon Linux 2
。在第一个版本中,我们使用 Dockerrun.aws.json v2
来管理多容器 docker。在最新版本(Docker running on 64bit Amazon Linux 2
)中,我们需要使用Dockerrun.aws.json v3
或docker-compose
。但是没有可用的示例或博客。我能得到工作样品吗?。
关于在 64 位 Amazon Linux 2 平台上运行的 Elastic Beanstalk 和 Docker。
我也很纠结,终于水落石出了。让我感到困惑的是,文档使您似乎可以选择在 EB 应用程序包中使用 Dockerrun.aws.json (v3) 或 docker-compose.yml。
然后你去找 Dockerrun.aws.json (v3) 上的文档,到处都找不到。
原因是,你别无选择。如果你想运行多个容器,你必须在你的应用程序包中包含一个 docker-compose.yml。 Dockerrun.aws.json (v3) 唯一允许您做的就是将 s3 存储桶和密钥配置到容器存储库身份验证文件“.dockercfg”的位置
这本质上是“Dockerrun.aws.json (v3)”的文档,它不支持任何类似于“Dockerrun.aws.json (v2)
{
"AWSEBDockerrunVersion": "3",
"Authentication": {
"bucket": "DOC-EXAMPLE-BUCKET",
"key": "mydockercfg"
}
}
包含一个 docker-compose.yml,只有当 docker 镜像位于私有存储库中时,您才需要 dockerrun.aws.json (v3)。
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/single-container-docker-configuration.html
根据 AWS Docs,在 Amazon Linux 上运行的多容器 Docker 可以迁移到 Amazon Linux 2 上的 ECS
此选项似乎比使用 Elastic Beanstalk 控制台更容易通过 CLI 应用,因为它需要 1 个命令:
aws elasticbeanstalk update-environment \
--environment-name ${my-env} \
--solution-stack-name "64bit Amazon Linux 2 ${version} running ECS" \
--region ${my-region}
我建议你先克隆你想升级的环境,将上面提到的命令应用到这个复制的环境并测试它,如果一切正常,那么你可以使用 blue/green deployment 来避免停机.
我希望这对某人有帮助!
现在(2023 年),如果您仍然需要从
Multi-container Docker running on 64bit Amazon
平台迁移,您可以选择创建一个 ECS running on 64bit Amazon Linux 2/3.2.5
环境,它将支持与多容器相同的 Dockerrun.aws.json
(v2) 文件:Migrating Multi -在 Amazon Linux 上运行的容器 Docker 到 Amazon Linux 2 上的 ECS.
或者你也可以按照Osain的回复尝试迁移