我在哪里可以找到我的 Docker UCP Swarm 集群中可用的模板值?
对于模板值,我的意思是这样的https://docs.docker.com/engine/reference/commandline/service_create/#create-services-using-templates .
我感觉我正在遍历的树看起来有点像 docker inspect
输出,但它的集合更小。哪些键?我可以使用哪些表达方式?
除此之外,我经常遇到类似 {{.Engine.Labels}}
<.Engine.Labels>: can't evaluate field Engine in type *template.Context
因此,存储树的上下文似乎是“上下文”。据我所知,这不是 docker 概念。
我如何尝试使用它的示例:
version: "3.7"
services:
bar:
image: foo/bar:latest
environment:
- hostname={{.Node.Hostname}}
deploy:
replicas: 2
在 docker inspect
中还有一个 --format
标志,你可以在其中使用相同的 go-template 语法,但它不是可以在中使用的树docker 堆栈设置。
最佳答案
我相信 context.go在 swarmkit 仓库中负责。
这意味着您拥有以下内容:
Service struct {
ID string
Name string
Labels map[string]string
}
Node struct {
ID string
Hostname string
Platform Platform
}
Task struct {
ID string
Name string
Slot string
}
例如.Service.ID
,.Service.Labels.LabelNameGoesHere
,.Task.Name
等
我希望 Node 标签能够公开并可访问以用于模板化 docker-compose.yml,但遗憾的是没有。
关于docker - docker stack deploy (compose) 中有哪些 Docker 模板值可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54251442/