在哪里可以找到我的Docker UCP Swarm集群中可用的模板值?
使用 template 值,我的意思是类似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
因此,似乎存储树的上下文是“上下文”。据我所知,这不是码头工人的概念。
我如何使用此示例:
version: "3.7"
services:
bar:
image: foo/bar:latest
environment:
- hostname={{.Node.Hostname}}
deploy:
replicas: 2
在docker inspect
中还有一个--format
标志,您可以在其中使用相同的go-template语法,但是不能在docker堆栈设置中使用树。
答案 0 :(得分:1)
我相信 swarmkit存储库中的context.go是负责任的。
这意味着您具有以下条件:
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
等
我希望为docker-compose.yml模板暴露并访问Node标签,但是事实并非如此。