有没有办法在 docker swarm 中运行容器时为每个副本设置环境变量?
所以,基本上,当通过 docker service create 命令或 docker compose 运行时,我需要以某种方式识别副本在 docker 容器(Spring boot 应用程序)内部运行的容器实例。
按照设计,我无法访问 docker 主机名或 IP。
谢谢你。
模板可用于集群服务:https://docs.docker.com/reference/cli/docker/service/create/#create-services-using-templates
为此,您可以指定一个环境变量,如
INSTANCE={{.Task.Slot}}
来了解正在运行哪个容器实例(数字),或者 NODE={{.Node.Hostname}}
来注入节点名称(如果每个实例在集群中的单独节点上运行)。这适用于使用撰写文件定义的服务或使用 docker service create
单独定义的服务。