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

Cloud Build执行Terraform时gcloud与curl命令未找到问题求助

解决方案:Cloud Build中Terraform执行gcloud命令找不到工具的问题

核心问题

你使用的hashicorp/terraform:1.0.1镜像是轻量级基础镜像,未预装gcloud和curl工具:

  • 初始错误是因为local-exec调用gcloud时找不到命令
  • 引入terraform-google-modules/gcloud模块后,该模块依赖curl下载安装包,而镜像中没有curl,导致双重错误

方案一:改用Cloud Build官方Terraform镜像(推荐)

Cloud Build提供的gcr.io/cloud-builders/terraform镜像基于官方gcloud镜像构建,预装了Terraform和gcloud SDK,无需额外安装工具。

修改Cloud Build步骤配置:

step {
  name = "gcr.io/cloud-builders/terraform:1.0.1"
  args = ["init"]
  dir  = "env/dev"
}
step {
  name = "gcr.io/cloud-builders/terraform:1.0.1"
  args = ["plan"]
  dir  = "env/dev"
}
step {
  name = "gcr.io/cloud-builders/terraform:1.0.1"
  args = ["apply", "-auto-approve"]
  dir  = "env/dev"
}

修改后直接执行Terraform Apply,local-exec中的gcloud命令即可正常运行。


方案二:在原有Terraform镜像中手动安装依赖

如果必须使用hashicorp/terraform镜像,可在Terraform步骤前添加安装curl和gcloud的步骤:

# 先安装curl和gcloud SDK
step {
  name = "hashicorp/terraform:1.0.1"
  args = ["sh", "-c", "apt-get update && apt-get install -y curl && curl https://sdk.cloud.google.com | bash"]
  env = ["CLOUDSDK_CORE_DISABLE_PROMPTS=1"]
}
# 后续Terraform步骤
step {
  name = "hashicorp/terraform:1.0.1"
  args = ["init"]
  dir  = "env/dev"
}
step {
  name = "hashicorp/terraform:1.0.1"
  args = ["plan"]
  dir  = "env/dev"
}
step {
  name = "hashicorp/terraform:1.0.1"
  args = ["apply", "-auto-approve"]
  dir  = "env/dev"
}
  • CLOUDSDK_CORE_DISABLE_PROMPTS=1用于跳过gcloud安装时的交互确认
  • 安装完成后,gcloud会自动加入环境变量,可直接调用

方案三:修正gcloud模块配置(需先解决curl依赖)

如果你坚持使用terraform-google-modules/gcloud模块,需先在环境中安装curl,再修正模块参数:

  1. 在Cloud Build中添加安装curl的步骤:
step {
  name = "hashicorp/terraform:1.0.1"
  args = ["apt-get", "update", "-y"]
}
step {
  name = "hashicorp/terraform:1.0.1"
  args = ["apt-get", "install", "-y", "curl"]
}
  1. 修正Terraform中gcloud模块的配置(原参数有误):
module "gcloud" {
  source  = "terraform-google-modules/gcloud/google"
  version = "3.1.0"

  install_dir = "/usr/local/bin"  # 指定gcloud安装路径,确保在系统PATH中
  platform    = "linux-x86_64"    # 匹配Cloud Build运行环境的架构
}

模块会自动下载并安装gcloud SDK,之后local-exec中的gcloud命令即可正常调用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 11:10:38