为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 CircleCI Go 图像中使用 Terraform

如何在 CircleCI Go 图像中使用 Terraform

Go
扬帆大鱼 2023-08-21 14:40:11
我已经为我的 Terraform 代码进行了基于 Go 的自动化测试,我想让它们在 CircleCI 中运行。为此,我为 CircleCI 设置了以下 config.yml:version: 2jobs:  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 pipefailgo test -v ./...=== RUN   TestFindMyTeaAppTestFindMyTeaApp 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: 谁能告诉我我做错了什么?或者也许这根本不可能?
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

不要尝试使用两个 Docker 镜像,而是尝试只使用hashicorp/terraform:full?

我相信您看到此错误是因为您的代码是在 Golang 容器中执行的,而该容器无法访问 Terraform light 容器中的可执行文件。

您可以创建一个自定义 Docker 映像来运行它,并手动安装 Terraform。然而,无论如何,该hashicorp/terraform:full镜像都是建立在 Golang 镜像之上的,因此理论上应该会让您更接近您的目标。


查看完整回答
反对 回复 2023-08-21
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信