我有一个运行一些 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 注册表中至少有 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"
}
}