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

GitHub Actions部署NiFi容器时Terraform Apply无限运行求助

问题排查与解决办法

最可能的原因:Terraform Apply 等待人工确认

你的GitHub Actions工作流中,terraform apply命令未添加-auto-approve参数。在GitHub Actions的非交互式环境中,Terraform会暂停执行,等待用户输入yes确认部署,但无人操作导致步骤一直卡住。

解决办法:修改Terraform Apply步骤的命令:

- name: Terraform Apply
  run: terraform apply -auto-approve

其他可能的原因及处理方式

  • NiFi容器启动缓慢,Terraform等待健康检查超时
    NiFi启动需加载大量组件,默认情况下Terraform的Docker provider会等待容器健康检查通过。若未配置健康检查规则,provider可能无限等待。
    解决:

    • 在docker_container资源中添加skip_healthcheck = true跳过健康检查:
      resource "docker_container" "nifi" {
        # 现有配置...
        skip_healthcheck = true
      }
      
    • 或配置匹配NiFi启动状态的健康检查规则:
      resource "docker_container" "nifi" {
        # 现有配置...
        healthcheck {
          test = ["CMD", "curl", "-f", "https://localhost:8443/nifi-api/access/config"]
          interval = "30s"
          timeout = "10s"
          retries = 10
          start_period = "5m"
        }
      }
      
  • GitHub Actions Runner资源不足
    Ubuntu-latest runner默认内存有限,NiFi容器启动需较多内存,可能导致容器启动卡住,Terraform持续等待容器就绪。
    解决:

    • 给Docker容器添加资源限制:
      resource "docker_container" "nifi" {
        # 现有配置...
        resources {
          memory = 4096
          memory_swap = 8192
        }
      }
      
    • 改用内存更大的GitHub-hosted runner(如ubuntu-latest-large)或自托管runner。
  • NiFi镜像拉取缓慢
    apache/nifi:latest镜像体积较大,GitHub Actions runner的网络环境可能拉取缓慢导致步骤卡住。
    解决:

    • 指定具体NiFi版本(如apache/nifi:1.23.2),避免拉取latest标签的大镜像;
    • 若频繁触发部署,可考虑使用自托管runner并提前缓存镜像。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:50:07