根据文件:
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_image.html
如果您想在单容器 Docker Elasticbeanstalk 环境中使用 ebextensions,您必须:
- 使用 zip 存档作为应用程序版本
- 在档案中包含 Dockerfile.aws.json 文件
- 在存档中包含 Dockerfile 文件
- 在您的档案中包含一个 .ebextensions 文件夹
使用的 Docker 映像将是 Dockerfile 创建的映像,而不是 Dockerfile.aws.json 中指定的映像
就我而言,我不希望 Elasticbeanstalk 动态构建我的 Docker 映像。相反,我想使用来自我的 AWS ECR 的映像。
在这种情况下,我是否可以只指定一个仅包含以下内容的 Dockerfile:
FROM F11111111111.dkr.ecr.us-west-2.amazonaws.com/<my-image>:latest
EXPOSE 80
这是否只是从基础构建一个本地未修改的图像并使用它?
答案1
我已经成功测试了这一点并且可以确认它确实有效。
尽管 ElasticBeanstalk 假定您的 Dockerfile 将在基础映像上构建并添加到基础映像,但实际上没有必要这样做。
Dockerfile 可以简单地引用您想要使用的基础映像(例如在 AWS ECR 中)以及在部署到 ElasticBeankstalk 实例时想要公开的端口。
这样,您就可以在单容器 Docker 环境中使用 ebextensions。