docker - teamcity 代理未发现 Terraform 可执行文件
问题描述
我正在编写一个 teamcity 管道,我在其中使用 terraform 来启动一些 AWS 实例。我的管道使用 docker 来一一调用所有步骤
但是,terraform init 不断失败并出现 terraform: Command not found 错误
[11:05:00][Step 2/6] Initialising terraform
[11:05:00][Step 2/6] terraform init
[11:05:00][Step 2/6] Makefile:41: recipe for target 'terraformApply' failed
[11:05:00][Step 2/6] make: terraform: Command not found
这是我的 Makefile 的 terraformApply 片段
@echo Download terraform
# ${CURDIR}
wget https://releases.hashicorp.com/terraform/0.12.20/terraform_0.12.20_linux_amd64.zip
unzip -o terraform_0.12.20_linux_amd64.zip
@echo Terraform downloaded
# @echo Current Directory
# ${CURDIR}
sleep 60
@echo *
@echo Initialising terraform
terraform init
## sudo terraform/terraform plan
@echo Terraform initialised
TF_VAR_AWS_ACCESS_KEY="****" TF_VAR_AWS_SECRET_KEY="****" terraform apply -auto-approve
@echo Terraform setup done
我的管道在 linux 代理上运行。
我直接在 linux 机器上运行了这个 Makefile,效果很好。然而,在 teamcity 管道上,它找不到提取的 terraform。此外,echo *
在 Makefile 中用于列出目录中存在的所有文件,我确实看到 terraform 存在于同一路径中。
任何帮助将不胜感激。
解决方案
默认情况下,基于 Linux 的系统不会在当前工作目录中搜索二进制文件。提取后terraform
,您需要将其称为./terraform init
.
推荐阅读
- python - 完全删除图例句柄和标签
- c# - c#直接等价于VB IsDate()
- python - 列出存储中的所有项目(文件夹和文件)
- ionic-framework - 需要回答(如何将存储(用户会话)数据传递到侧菜单离子 5?)
- java - 如何通过索引号显示数组的值?
- linux - 为什么 gem5 运行 parsec3.0 会遇到死锁错误?
- angular - 如何在 Angular 中监听 NgbDialog Common-Dialog 发出的事件?
- navigation - 从旧坐标沿相反方向计算新坐标,即距旧坐标50米
- java - 如何通过一个 POJO 处理不同的数据
- javascript - 通过删除不需要的数据,将 json 数据重组为相同的结构