特定于副本的Docker堆栈/组合configuration
我试图运行一个使用Docker堆栈/撰写文件的RabbitMQ集群。 不幸的是,这意味着我不能使用replicas
function来扩大或缩小容器的数量,我不得不使用多个服务,如下所示:
version: '3.3' services: rabbit_node_1: image: rabbitmq:3.7.0-management-alpine environment: - RABBITMQ_ERLANG_COOKIE=foo hostname: rabbit_node_1 ports: - "15672:15672" - "5672:5672" networks: - myoverlay tty: true rabbit_node_2: image: rabbitmq:3.7.0-management-alpine environment: - RABBITMQ_ERLANG_COOKIE=foo hostname: rabbit_node_2 depends_on: - rabbit_node_1 ports: - "15673:15672" - "5673:5672" networks: - myoverlay tty: true
服务之间的唯一区别是hostname
,我正在提供一个自定义configuration文件,如下所示:
[ { rabbit, [ {cluster_nodes, {['rabbit@rabbit_node_1', 'rabbit@rabbit_node_2'], disc}}, { loopback_users, [ ] } ] } ].
有没有办法将这两个单独的Docker服务rabbitmq
为一个rabbitmq
服务,并以某种方式使用副本数来驱动每个实例中的差异? 像这样(请参阅${replica_ip_address}
和${replica_number}
):
version: '3.3' services: rabbitmq: image: rabbitmq:3.7.0-management-alpine environment: - RABBITMQ_ERLANG_COOKIE=foo - REPLICA_IP_ADDRESS=${replica_ip_address} hostname: rabbit_node_${replica_number} ports: - "15672:15672" - "5672:5672" networks: - myoverlay tty: true