Конвейер Gitlab CICD с `hashicorp / terraform: full` ошибки изображения с` terraform: команда не найдена` - PullRequest
0 голосов
/ 13 июня 2019

У меня есть конвейер Gitlab для развертывания инфраструктуры AWS с использованием Terraform. Когда я использую изображение 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:

enter image description here

При использовании hashicorp/terraform:full:

enter image description here

Так что с hashicorp/terraform:full я получаю ошибку command not found, хотя ничего не изменилось.

Как я могу заставить это работать с hashicorp/terraform:full образом Docker?

1 Ответ

3 голосов
/ 13 июня 2019

Почему вы меняете путь на изображении?

В hashicorp/terraform:full?Бинарный файл terraform живет под /go/bin/ в этом изображении, в то время как он находится под /bin/ в light изображении.

Если вы не путаетесь с путем, тогда все должно быть в порядке.В качестве альтернативы включите в свой путь /go/bin/, и это также должно исправить это.

Отдельно, экспорт такой переменной на самом деле ничего не дает.

...