在 AWS Elasticbeanstalk 中将 ebextensions 与 Docker 结合使用

在 AWS Elasticbeanstalk 中将 ebextensions 与 Docker 结合使用

根据文件:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_image.html

如果您想在单容器 Docker Elasticbeanstalk 环境中使用 ebextensions,您必须:

  1. 使用 zip 存档作为应用程序版本
  2. 在档案中包含 Dockerfile.aws.json 文件
  3. 在存档中包含 Dockerfile 文件
  4. 在您的档案中包含一个 .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。

相关内容