docker - docker stack deploy (compose) 中有哪些 Docker 模板值可用?

标签 docker docker-compose docker-swarm

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

相关文章:

docker - 如何阻止 TeamCity 每次都重新构建 docker 依赖项?

docker - 仅在Docker中重建代码

docker - 如何在 Docker 中回显环境变量

Docker 注册表镜像 - 持久性

docker - Traefik 可以在 Docker 主机上为容器创建具有固定端口的路由吗?

docker - 获取类型 "bind": bind source path does not exist in docker 的无效挂载配置

Java + Docker : Different datasource url

powershell - 运行docker redis实例无法访问redis

docker - 从Docker容器登录到主机不起作用

docker-compose - 如何从主机连接到数据库 - 在docker compose下运行的容器中的sql server