如何在providers中引用Terraform环境变量?

问题描述 投票:0回答:1

我有一个运行一些 terraform 的 gitlab 管道,所以说我有一个声明的管道

Plan (Example):
  variables:
    TF_VAR_myenvvariable: /home/$example

现在在我的 Terraform 项目中

providers.tf

我有

provider "docker" {
...

    registry_auth {
        address     = "example.com"
        config_file = "${TF_VAR_myenvvariable}/docker.json"
    }
}

如何让它发挥作用?它不起作用。我无法使用 var.myenvvariable,因为您无法在提供程序块中使用变量。

terraform terraform-provider-docker
1个回答
0
投票

Terraform 注册表中至少有 2 个 docker 提供程序似乎与您的提供程序配置兼容:

您尚未指定您正在使用哪一个。鉴于它们非常相似,它们的工作方式可能完全相同。

许多 Terraform 提供程序允许您省略属性并使用环境变量。例如,当使用

calxus/docker
提供程序时,您可以设置
DOCKER_HOST
而不是设置
config_file
属性。

因此您可以按如下方式配置 gitlab 管道:

Plan (Example):
  variables:
    DOCKER_HOST: /home/$example

提供商配置:

provider "docker" {
  # ...

  registry_auth {
    address = "example.com"
  }
}

或者,作为替代方案,使用用户名和密码:

Plan (Example):
  variables:
    DOCKER_REGISTRY_USER: myuser
    DOCKER_REGISTRY_PASS: mypassword

提供商配置:

provider "docker" {
  # ...

  registry_auth {
    address = "example.com"
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.