首页新闻找找看学习计划

在docker集群部署时,如何让不同节点上的容器引用各自host上,同一个key对应的环境变量

0
悬赏园豆:30 [已解决问题] 解决于 2018-04-17 12:05

本场景使用的是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,应该怎么做呢?

剑握在手的主页 剑握在手 | 初学一级 | 园豆:59
提问于:2018-04-13 17:08
< >
分享
最佳答案
1

这个环境变量是在执行部署命令时读取,在哪台机器上执行部署命令就读取哪台机器的环境变量

收获园豆:30
dudu | 高人七级 |园豆:39106 | 2018-04-13 21:32

园主大佬,如果我想实现 容器各自取宿主的同名环境变量,有办法吗?

剑握在手 | 园豆:59 (初学一级) | 2018-04-16 14:13

@剑握在手: 建议一个变通方法,将变量值存储在宿主机的一个文件中,然后用过volumes添加到容器中

dudu | 园豆:39106 (高人七级) | 2018-04-16 14:49

@dudu: 嗯 是个好办法,谢谢大佬

剑握在手 | 园豆:59 (初学一级) | 2018-04-17 12:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册