如何使用Terraform为AWS指定Dockerrun.aws.json

时间:2017-06-19 15:08:25

标签: amazon-web-services amazon-ec2 elastic-beanstalk terraform

我正在尝试通过Elastic Beanstalk托管AWS的Docker应用程序。在手动创建环境时,我可以选择在环境中运行示例应用程序,上传我自己的应用程序,或从s3中提取应用程序。通过上传具有所有必要配置的Dockerrun.aws.json文件,环境可以拉动并运行我的Docker镜像。

现在我正在使用Terraform以编程方式创建和配置这些环境。但是,在创建时,它们都运行示例应用程序,当我尝试手动将Dockerrun文件上载到环境时,这会导致问题。

在Terraform配置中包含Dockerrun信息的正确方法是什么,以便我的应用程序可以毫不费力地部署?

1 个答案:

答案 0 :(得分:0)

您应该使用S3存储桶来存储Dockerrun.aws.json并设置Beanstalk应用程序版本。

类似的东西:

resource "aws_elastic_beanstalk_application_version" "latest" {
  name        = "latest"
  application = "your_app"
  bucket      = "your_bucket"
  key         = "Dockerrun.aws.json"
}

然后添加到您的Beanstalk环境:

version_label = "${aws_elastic_beanstalk_application_version.latest.name}"

当然,最好使用引用而不是硬编码名称。