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:fullterraform 二进制文件在该图像中位于 /go/bin/ 下,而在 light 图像中位于 /bin/ 下。

如果你不弄乱路径,那应该没问题。或者在你的路径中包含 /go/bin/,这也应该修复它。

另外,导出这样的变量实际上并没有实现任何目标。