docker - 在 terraform 中读取文件并将其传递给 docker 容器时保留文件内容的缩进
问题描述
resource "google_compute_instance_template" "envoy_instance_template" {
disk {
source_image = "gce-uefi-images/cos-stable"
disk_size_gb = var.disk_size
disk_type = var.disk_type
boot = true
}
metadata = {
gce-container-declaration = yamlencode({
apiVersion = "v1",
kind = "Pod",
metadata = {
name = "envoy"
}
spec = {
containers = [{
name = "envoy",
image = "myimage",
imagePullPolicy = "Always",
ports = {
containerPort = "443",
hostPort = "443",
},
env = [
{
name = "ENVOY_CONFIG",
value = templatefile("${path.module}/envoy.tmpl",
{
routes = var.envoy_config.routes
clusters = var.envoy_config.clusters
}),
}
]
}]
}
})
google-logging-enabled = "TRUE"
enable-oslogin = "TRUE"
}
我只是想在gce-uefi-images/cos-stable
. 使用上面的代码,上面的代码按预期开始。
ENVOY_CONFIG
但是,当容器启动时,换行符和缩进消失了。
该templatefile
功能正常工作并生成yaml
预期的文件。但是,容器内部ENVOY_CONFIG
会丢失所有缩进。
我尝试使用yamlencode
,但它也没有工作。
在环境变量中保留 yaml 文件内容(缩进和换行符)的正确方法是什么ENVOY_CONFIG
?
解决方案
推荐阅读
- ios - 具有最佳行为的 UISplitViewController
- scala - sbt:如何通过 Scala 代码获取依赖的 jar 文件列表
- css - 防止内容与粘性标题的边距重叠
- c++ - 函数返回
而不是 C++ 中指向模板类的预期原始指针 - php - 如何在 WooCommerce 中隐藏免费产品的支付网关?
- git - 专注于 Visual Studio Code Git 源代码控制管理器更改的快捷方式
- django - 无法编辑/删除现有格式
- elasticsearch - 具有聚合的 Elasticsearch 地理查询
- python - Jupyter Notebook to HTML - Notebook JSON 无效:['outputPrepend']
- sql-server - Azure DevOps 管道从使用 Asp.Net MVC + 数据库项目的解决方案中获取 DACPAC