Gitlab CICD 管道与 `hashicorp/terraform:full` 图像错误与 `terraform: command not found`
Gitlab CICD pipeline with `hashicorp/terraform:full` image errors with `terraform: command not found`
我有一个 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 图像进行此操作?
为什么要更改图像中的路径?
在hashicorp/terraform:full
? terraform
二进制文件在该图像中位于 /go/bin/
下,而在 light
图像中位于 /bin/
下。
如果你不弄乱路径,那应该没问题。或者在你的路径中包含 /go/bin/
,这也应该修复它。
另外,导出这样的变量实际上并没有实现任何目标。
我有一个 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 图像进行此操作?
为什么要更改图像中的路径?
在hashicorp/terraform:full
? terraform
二进制文件在该图像中位于 /go/bin/
下,而在 light
图像中位于 /bin/
下。
如果你不弄乱路径,那应该没问题。或者在你的路径中包含 /go/bin/
,这也应该修复它。
另外,导出这样的变量实际上并没有实现任何目标。