本场景使用的是docker stack 部署:
docker stack deploy -c docker-compose.yml xxxx
在docker-compose.yml中有一个配置:
version: '3.4'
services:
fscp-portal-base-zuul:
image: 192.168.2.3/base-zuul
networks:
- hostnet
deploy:
mode: global
environment:
zone: $zone
networks:
hostnet:
external:
name: host
这样会在3台机器上根据同一个镜像创建容器,注意其中的environment,配置的zone是使用host上的zone环境变量。
这里我想让每个容器各自取自己的宿主节点上的zone环境变量,而非swarm master节点上的zone,应该怎么做呢?
这个环境变量是在执行部署命令时读取,在哪台机器上执行部署命令就读取哪台机器的环境变量
园主大佬,如果我想实现 容器各自取宿主的同名环境变量,有办法吗?
@剑握在手: 建议一个变通方法,将变量值存储在宿主机的一个文件中,然后用过volumes
添加到容器中
@dudu: 嗯 是个好办法,谢谢大佬