我正在尝试通过 Elastic Beanstalk 使用 AWS 托管一个 Docker 应用程序。在手动创建环境时,我可以选择在环境中运行示例应用程序、上传我自己的应用程序或从 s3 中提取应用程序。通过上传 Dockerrun.aws.json
文件包含环境能够拉取和运行我的 Docker 镜像的所有必要配置。
现在我正在使用 Terraform 以编程方式创建和配置这些环境。但是,在创建时,它们都运行示例应用程序,当我尝试手动将 Dockerrun 文件上传到环境时,这反过来会导致问题。
在 Terraform 配置中包含 Dockerrun 信息以便我的应用程序可以顺利部署的正确方法是什么?
最佳答案
您应该使用 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}"
当然,最好使用引用而不是硬编码名称。
关于amazon-web-services - 如何使用 Terraform 为 AWS 指定 Dockerrun.aws.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44634079/