我有一个Gitlab管道来使用Terraform部署AWS基础设施。当我使用hashicorp/terraform:light
图像时,一切正常。但是,当我使用hashicorp/terraform:full
时,显然找不到terraform
。
下面是我拥有的.gitlab-ci.yml
文件:
image:
name: hashicorp/terraform:light
entrypoint:
- '/usr/bin/env'
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
before_script:
- rm -rf .terraform
- export AWS_ACCESS_KEY
- export AWS_SECRET_KEY
- terraform init
stages:
- validate
- plan
- apply
validate:
stage: validate
script:
- terraform validate
plan:
stage: plan
script:
- terraform plan -out "planfile"
dependencies:
- validate
artifacts:
paths:
- planfile
apply:
stage: apply
script:
- terraform apply -input=false "planfile"
dependencies:
- plan
when: manual
使用hashicorp/terraform:light
时:
使用hashicorp/terraform:full
时:
因此,即使没有其他更改,使用hashicorp/terraform:full
我也会遇到command not found
错误。
我如何使用hashicorp/terraform:full
Docker映像来完成这项工作?
答案 0 :(得分:3)
为什么要更改图像中的路径?
在hashicorp/terraform:full
中? terraform
二进制文件位于该图像的/go/bin/
下,而它位于/bin/
图像的light
下。
如果您不弄乱路径,那应该没问题。或者,在您的路径中包含/go/bin/
,这也应该解决该问题。
另外,导出这样的变量实际上并没有实现任何目的。