如何在 CircleCI Go 图像中使用 Terraform

我已经为我的 Terraform 代码进行了基于 Go 的自动化测试,我想让它们在 CircleCI 中运行。为此,我为 CircleCI 设置了以下 config.yml:


version: 2


jobs:

  build:

    docker:

      - image: circleci/golang:1.12

      - image: hashicorp/terraform:light


    working_directory: /go/src/bitbucket.org/teapigsteam/findmytea-terraform

    steps:

      - checkout


      - run: go get -v -t -d ./...

      - run: go test -v ./...

但由于某种原因,Go 找不到 Terraform 可执行文件:


#!/bin/bash -eo pipefail

go test -v ./...

=== RUN   TestFindMyTeaApp

TestFindMyTeaApp 2020-03-21T12:20:26Z retry.go:72: terraform [init -upgrade=false]

TestFindMyTeaApp 2020-03-21T12:20:26Z command.go:87: Running command terraform with args [init -upgrade=false]

TestFindMyTeaApp 2020-03-21T12:20:26Z retry.go:80: Returning due to fatal error: FatalError{Underlying: exec: "terraform": executable file not found in $PATH}

TestFindMyTeaApp 2020-03-21T12:20:26Z retry.go:72: terraform [destroy -auto-approve -input=false -var app_name=findmytea-terraform-tdd -lock=false]

TestFindMyTeaApp 2020-03-21T12:20:26Z command.go:87: Running command terraform with args [destroy -auto-approve -input=false -var app_name=findmytea-terraform-tdd -lock=false]

TestFindMyTeaApp 2020-03-21T12:20:26Z retry.go:80: Returning due to fatal error: FatalError{Underlying: exec: "terraform": executable file not found in $PATH}

--- FAIL: TestFindMyTeaApp (0.00s)

    apply.go:13: 

            Error Trace:    apply.go:13

                                        findmyteaui_test.go:19

            Error:          Received unexpected error:

                            FatalError{Underlying: exec: "terraform": executable file not found in $PATH}

            Test:           TestFindMyTeaApp

    destroy.go:11: 

谁能告诉我我做错了什么?或者也许这根本不可能?


扬帆大鱼
浏览 116回答 1
1回答

大话西游666

不要尝试使用两个 Docker 镜像,而是尝试只使用hashicorp/terraform:full?我相信您看到此错误是因为您的代码是在 Golang 容器中执行的,而该容器无法访问 Terraform light 容器中的可执行文件。您可以创建一个自定义 Docker 映像来运行它,并手动安装 Terraform。然而,无论如何,该hashicorp/terraform:full镜像都是建立在 Golang 镜像之上的,因此理论上应该会让您更接近您的目标。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go