在Docker中为每个容器生成唯一的名称/ ID,用于Rancher堆栈

我正在尝试在Rancher中build立一个HA Etcd堆栈,它将使用我根据官方文档创build的discovery URL从另一个Etcd堆栈自我引导。

如果我只想要一个节点,这是有效的,但是如果我想要一个3或5的HA堆栈,例如,节点使用相同的名称在发现端点上注册自己。

因此无论哪个容器首先启动,都可以在端点上注册,但所有的容器都不能。

如何在值为ETCD_NAME -compose.yml中生成唯一的名称?

泊坞窗,compose.yml

 version: '2' services: etcd-ha: image: private.registry.example.com/etcd/etcd:v2.3.8 environment: ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2479,http://0.0.0.0:4001 ETCD_LISTEN_PEER_URLS: http://0.0.0.0:2380 ETCD_NAME: etcd_${UID} // THIS NEEDS TO BE UNIQUE PER NODE ETCD_DISCOVERY: http://discovery.etcd.example.com/v2/keys/_etcd/registry/etcdbootstrap labels: io.rancher.container.pull_image: always 

牧场主,compose.yml

 version: '2' services: etcd-ha: scale: 1 start_on_create: true 

为什么我不指定差异服务? 比方说,我指定了3个不同名称的服务,但下个星期我想要5 – 我将不得不改变撰写文件; 我也会被限制在相同的因子下。