docker stack deploy(撰写)中可以使用哪些Docker模板值?

时间:2019-01-18 09:54:42

标签: docker docker-compose docker-swarm

在哪里可以找到我的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堆栈设置中使用树。

1 个答案:

答案 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标签,但是事实并非如此。