我正在尝试通过Elastic Beanstalk托管AWS的Docker应用程序。在手动创建环境时,我可以选择在环境中运行示例应用程序,上传我自己的应用程序,或从s3中提取应用程序。通过上传具有所有必要配置的Dockerrun.aws.json
文件,环境可以拉动并运行我的Docker镜像。
现在我正在使用Terraform以编程方式创建和配置这些环境。但是,在创建时,它们都运行示例应用程序,当我尝试手动将Dockerrun文件上载到环境时,这会导致问题。
在Terraform配置中包含Dockerrun信息的正确方法是什么,以便我的应用程序可以毫不费力地部署?
答案 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}"
当然,最好使用引用而不是硬编码名称。