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

tVo*_*s42 5 amazon-ec2 amazon-web-services amazon-elastic-beanstalk terraform

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

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

将Dockerrun信息包含在Terraform配置中以便我的应用程序可以顺利部署的正确方法是什么?

cha*_*rli 2

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

\n\n

就像是:

\n\n
resource "aws_elastic_beanstalk_application_version" "latest" {\n\xe2\x80\x82\xe2\x80\x82name\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82= "latest"\n\xe2\x80\x82\xe2\x80\x82application = "your_app"\n\xe2\x80\x82\xe2\x80\x82bucket\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82= "your_bucket"\n\xe2\x80\x82\xe2\x80\x82key\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82\xe2\x80\x82 = "Dockerrun.aws.json"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后添加到您的 Beanstalk 环境:

\n\n
version_label = "${aws_elastic_beanstalk_application_version.latest.name}"\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n