【发布时间】:2018-01-16 01:51:14
【问题描述】:
我正在尝试在 AWS EC2 的 docker compose v3 中将容器的主机名设置为 hostname: '{{.Node.Hostname}}'。
它以Error response from daemon: rpc error: code = 3 desc = expanding hostname failed: template: expansion:1:7: executing "expansion" at <.Node.Hostname>: can't evaluate field Hostname in type struct { ID string } 失败。
这里是版本详细信息,
Client:
Version: 17.06.2-ce
API version: 1.30
Go version: go1.8.4
Git commit: 3dfb8343b139d6342acfd9975d7f1068b5b1c3d3
Built: Fri Nov 10 00:50:37 2017
OS/Arch: linux/amd64
Server:
Version: 17.06.2-ce
API version: 1.30 (minimum version 1.12)
Go version: go1.8.4
Git commit: 402dd4a/17.06.2-ce
Built: Fri Nov 10 00:51:08 2017
OS/Arch: linux/amd64
Experimental: false
根据https://docs.docker.com/compose/compose-file/,17.06.+ 与 docker-compose v3 兼容。
我怎样才能使这个模板工作?我需要升级码头工人吗? 谢谢。
【问题讨论】:
-
我认为
.Node这里给你一个节点 ID 而不是一个节点对象。我不确定哪个对象暴露给模板 -
github.com/moby/moby/issues/32561 也许它会在最新的 docker 中可用?
标签: docker amazon-ec2 docker-compose docker-swarm