我已经为我的 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 镜像之上的,因此理论上应该会让您更接近您的目标。
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消