You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform部署Docker应用到Elastic Beanstalk遇示例页问题求助

排查Terraform部署Elastic Beanstalk Docker应用显示示例页的问题

核心排查方向

1. 检查应用代码的打包与上传配置

  • 确认aws_elastic_beanstalk_application_version资源中source_bundle指向的S3压缩包,是否包含完整的应用文件(Dockerfile、依赖文件等),且Dockerfile位于压缩包根目录(而非子目录)。
    resource "aws_elastic_beanstalk_application_version" "app_version" {
      name        = "v1"
      application = aws_elastic_beanstalk_application.app.name
      source_bundle {
        s3_bucket = aws_s3_bucket.app_bucket.bucket
        s3_key    = "app-bundle.zip" # 需验证此zip内的文件结构与手动部署一致
      }
    }
    
  • 手动下载S3中的压缩包解压检查,确保内容和手动部署时的包完全相同。

2. 验证Elastic Beanstalk环境的Docker平台配置

  • 确认aws_elastic_beanstalk_environment的solution_stack_name为Docker专属栈,比如64bit Amazon Linux 2 v3.5.0 running Docker,而非通用Web服务器栈。
  • 检查环境端口映射配置:如果应用监听非80端口,需通过setting块指定容器端口映射:
    resource "aws_elastic_beanstalk_environment" "app_env" {
      name                = "docker-app-env"
      solution_stack_name = "64bit Amazon Linux 2 v3.5.0 running Docker"
    
      setting {
        namespace = "aws:elasticbeanstalk:container:docker"
        name      = "container_port"
        value     = "5000" # 替换为你的应用监听端口
      }
    }
    

3. 查看环境日志定位启动问题

  • 从AWS控制台下载环境完整日志,重点排查:
    • Docker容器启动日志:搜索docker run相关条目,确认是否存在镜像拉取失败、端口冲突或启动命令错误。
    • 应用运行日志:检查容器内的应用输出,确认服务是否正常启动并监听指定端口。

4. 对比手动与Terraform部署的配置差异

  • 导出手动部署环境的配置文件,和Terraform代码中的setting块逐一对比,重点检查环境变量、健康检查路径、容器配置等关键项是否一致。
  • 确认Terraform部署的应用版本是否被环境正确关联:检查aws_elastic_beanstalk_environment的version_label是否指向目标应用版本,避免环境仍使用默认示例版本。

5. 检查Elastic Beanstalk环境事件细节

  • 从控制台事件日志中,确认应用版本是否成功部署、容器是否完成健康检查。如果存在"Failed to pull Docker image"或"Container failed health checks"类的提示,直接对应问题点修复。

内容的提问来源于stack exchange,提问作者MozkaGit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 05:38:16