GitLab CI/CD - 更改工作目录

Sph*_*x's 7 continuous-integration gitlab terraform

我正在尝试为 Terraform 实现 CI/CD 管道,但是我需要在运行任何其他命令之前更改密码。

Terraform 容器似乎只接受 Terraform 命令,因此无法识别 cd/ls/echo $PATH。我是否需要构建一个支持并使用它的图像,或者我可以使用维护的 Terraform 图像吗?

我尝试更改 ENTRYPOINT,但由于 Alpine 映像,似乎只有最小安装可用。

Jer*_*che 11

您可以将入口点更改/usr/bin/env为 以运行 cd 命令。以 gitlab-ci 为例:

validate_terraform:
  image:
    name: hashicorp/terraform:light
    entrypoint: ["/usr/bin/env"]
  stage: test

  script:
    - cd infrastructure/
    - terraform init
    - terraform validate
Run Code Online (Sandbox Code Playgroud)

  • “入口点”很好。括号在 yaml 中用于指定数组 (5认同)
  • 值得澄清的是,这改变了 [docker ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint)。这比简单的“更改工作目录”具有更广泛的影响 (2认同)

ali*_*iee 1

alpine您可以只使用像您一样的通用图像.gitlab-ci.yml,并在脚本中获取 Terraform,如下所示:

wget https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_386.zip
unzip terraform*
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

./terraform [...]
Run Code Online (Sandbox Code Playgroud)