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

Bitbucket Pipeline执行时报terraform: command not found错误如何修复

问题原因分析
  • 首先明确:Terraform是HashiCorp基于Go语言开发的独立二进制工具,不是Python包,无法通过pip命令安装。
  • 你当前流水线报错的两个核心原因:
    1. 你使用的atlassian/default-image:2基础镜像未预装Terraform二进制文件,所以系统找不到对应命令
    2. Bitbucket Pipelines的每个step都是独立启动的新容器,第一个step执行的cd命令只会在第一个容器内生效,第二个step启动后工作目录会重置,就算装了Terraform直接执行terraform init也会找不到对应工作目录。
解决方案

推荐两种可行的配置方式,按需选择:

方案1:直接使用官方Terraform镜像(最简便)

直接在需要执行Terraform命令的step中指定HashiCorp官方的Terraform镜像作为运行环境,无需手动安装,同时把目录切换逻辑合并到同一个step中,修正后的配置如下:

image: atlassian/default-image:2

pipelines:
  branches:
    test:
      - step:
          name: 'Initialize Terraform Dev Environment'
          image: hashicorp/terraform:1.5.7 # 可替换为你需要的Terraform版本
          script:
            - cd terraform/environments/dev
            - terraform init
          condition:
            changesets:
              includePaths:
                - "terraform/modules"
                - "terraform/environments/dev"

方案2:在默认镜像中手动安装Terraform

如果你必须使用atlassian/default-image:2作为基础镜像,可以在step的脚本中手动下载对应版本的Terraform二进制文件并添加到系统路径,示例配置如下:

image: atlassian/default-image:2

pipelines:
  branches:
    test:
      - step:
          name: 'Initialize Terraform'
          script:
            # 下载指定版本Terraform,版本号可自行替换
            - wget https://releases.hashicorp.com/terraform/1.5.7/terraform_1.5.7_linux_amd64.zip
            - unzip terraform_1.5.7_linux_amd64.zip
            - mv terraform /usr/local/bin/
            # 验证安装
            - terraform --version
            # 切换目录后执行init
            - cd terraform/environments/dev
            - terraform init
          condition:
            changesets:
              includePaths:
                - "terraform/modules"
                - "terraform/environments/dev"
实现原理
  • Bitbucket Pipelines每个step的运行环境都是独立的Docker容器,所有环境配置、命令执行结果都只会在当前step的容器内生效,跨step的状态默认不继承
  • 方案1直接使用预装好Terraform的官方镜像,容器启动后就能直接调用terraform命令,不需要额外配置,稳定性和兼容性最好
  • 方案2是通过手动下载Terraform官方编译好的Linux二进制文件,放到系统全局可执行路径/usr/local/bin下,让系统可以识别到terraform命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:54:03