我有一个地形模块和.yaml对接-组成与服务配置。Yaml有如下变量:
version: '3.2'
services:
cadvisor:
image: gcr.io/google-containers/cadvisor:${var.image_version}
container_name: cadvisor
volumes:
- /:/rootfs:ro
- /var/lib/docker:/var/lib/docker:ro
mem_limit: ${var.limit}
mem_reservation: ${var.reservation}
ports:
- 8080:8080我的资源是:
resource "local_file" "compose" {
content = file("${var.compose_path}/docker-compose.yml")
filename = "${path.module}/foo.bar"
}这些值在我的模块中声明。我将在我的项目中使用这个docker-compose.yml,例如发送到远程服务器并在那里运行。如何将变量值从模块传递给yaml?
我尝试声明值并使用yaml执行一些操作,如resource "local_file"以保存为文件,但.yaml仍然没有值。
发布于 2022-11-10 09:06:53
您可以通过使用templatefile内置函数1来实现您想要的结果。
resource "local_file" "compose" {
content = templatefile("${var.compose_path}/docker-compose.yml", {
image_version = var.image_version
limit = var.limit
reservation = var.reservation
})
filename = "${path.module}/docker-compose.yml"
}这还需要对docker-compose.yml文件进行轻微的更改:
version: '3.2'
services:
cadvisor:
image: gcr.io/google-containers/cadvisor:${image_version}
container_name: cadvisor
volumes:
- /:/rootfs:ro
- /var/lib/docker:/var/lib/docker:ro
mem_limit: ${limit}
mem_reservation: ${reservation}
ports:
- 8080:8080https://stackoverflow.com/questions/74381477
复制相似问题