每个副本环境变量的 Docker swarm 服务

问题描述 投票:0回答:1

有没有办法在 docker swarm 中运行容器时为每个副本设置环境变量?

所以,基本上,当通过 docker service create 命令或 docker compose 运行时,我需要以某种方式识别副本在 docker 容器(Spring boot 应用程序)内部运行的容器实例。

按照设计,我无法访问 docker 主机名或 IP。

谢谢你。

java spring spring-boot docker service
1个回答
0
投票

模板可用于集群服务:https://docs.docker.com/reference/cli/docker/service/create/#create-services-using-templates

为此,您可以指定一个环境变量,如

INSTANCE={{.Task.Slot}}
来了解正在运行哪个容器实例(数字),或者
NODE={{.Node.Hostname}}
来注入节点名称(如果每个实例在集群中的单独节点上运行)。这适用于使用撰写文件定义的服务或使用
docker service create
单独定义的服务。

© www.soinside.com 2019 - 2024. All rights reserved.