【问题标题】:Which Docker template values are available in docker stack deploy (compose)?docker stack deploy(compose)中有哪些 Docker 模板值可用?
【发布时间】:2019-01-18 09:54:41
【问题描述】:

在哪里可以找到我的 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

因此,存储树的上下文似乎是“上下文”。据我所知,这不是 docker 概念。

我如何尝试使用它的示例:

version: "3.7"

services:
  bar:
    image: foo/bar:latest
    environment:
      - hostname={{.Node.Hostname}}
    deploy:
      replicas: 2

docker inspect 中还有一个--format 标志,您可以在其中使用相同的go-template 语法,但它不是可以在docker 堆栈设置中使用的树。

【问题讨论】:

    标签: docker docker-compose docker-swarm


    【解决方案1】:

    相信 swarmkit repo 中的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 使用,但可惜没有。

    【讨论】:

      猜你喜欢
      • 2022-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-21
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      相关资源
      最近更新 更多