You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Swarm中docker-compose.yml使用{{.Node.Hostname}}部署报错求助

解决Docker Swarm栈部署中hostname模板解析失败的问题

这个报错的核心原因是Docker Swarm默认没有启用Go模板解析功能,所以无法识别你在hostname字段中使用的.Node.Hostname上下文变量。

要解决这个问题,只需要在你的服务配置中添加template_driver: golang,明确告诉Swarm使用Go模板引擎来解析模板字段。修改后的docker-compose.yml如下:

services:
  nginx:
    image: nginx
    hostname: '{{.Node.Hostname}}'
    template_driver: golang  # 启用Go模板解析,让Swarm识别上下文变量
version: '3.3'

重新执行部署命令:

docker stack deploy test -c docker-compose.yml

这样Swarm就能正确解析{{.Node.Hostname}},将容器的hostname设置为它所部署节点的主机名了。

补充说明:template_driver字段是Docker Swarm针对模板解析的专属配置,当你需要在服务的某些字段(比如hostname、command、args等)中使用Swarm上下文变量时,都需要启用这个配置来激活模板解析能力。

内容的提问来源于stack exchange,提问作者Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:16:04