11{% set NODE_IXS = range (1, (RABBIT_CLUSTER_NODE_COUNT | int ) + 1) -%}
22
33services:
4+ loadbalancer:
5+ image: haproxy:3.2
6+ ports:
7+ - "5672:5672"
8+ - "15672:15672"
9+ networks:
10+ - rabbit
11+ configs:
12+ - source: haproxy.cfg
13+ target: /usr/local/etc/haproxy/haproxy.cfg
414{% for ix in NODE_IXS %}
515 rabbit0{{ ix }}:
616 image: itisfoundation/rabbitmq:4.1.2-management
@@ -17,11 +27,6 @@ services:
1727 RABBITMQ_NODENAME: {% raw %} "rabbit@{{.Service.Name}}"{% endraw %}
1828 # https://docs.docker.com/reference/compose-file/services/#long-syntax-5
1929 # https://hub.docker.com/_/rabbitmq#erlang-cookie
20- {% if ix == 1 %}
21- # TODO: remove
22- ports:
23- - "15672:15672" # management UI
24- {% endif %}
2530 secrets:
2631 # https://github.com/docker-library/rabbitmq/issues/279
2732 - source: rabbit_erlang_cookie
@@ -60,7 +65,7 @@ services:
6065 image: python:3.11
6166 command: sh -c "pip install pika && python /app/sub.py"
6267 environment:
63- - RABBIT_HOSTS=rabbit_rabbit01,rabbit_rabbit02,rabbit_rabbit03
68+ - RABBIT_HOSTS=rabbit_loadbalancer
6469 - RABBIT_USER=${RABBIT_USER}
6570 - RABBIT_PASS=${RABBIT_PASSWORD}
6671 networks:
@@ -72,7 +77,7 @@ services:
7277 image: python:3.11
7378 command: sh -c "pip install pika && python /app/pub.py"
7479 environment:
75- - RABBIT_HOSTS=rabbit_rabbit01,rabbit_rabbit02,rabbit_rabbit03
80+ - RABBIT_HOSTS=rabbit_loadbalancer
7681 - RABBIT_USER=${RABBIT_USER}
7782 - RABBIT_PASS=${RABBIT_PASSWORD}
7883 networks:
@@ -96,7 +101,9 @@ networks:
96101configs:
97102 rabbitmq.conf:
98103 file: ./rabbitmq.conf
99- name: ${STACK_NAME}_rabbitmq_conf_{{ "./rabbitmq.conf" | sha256file | substring(0,10) }}
104+ haproxy.cfg:
105+ file: ./haproxy.cfg
106+ name: ${STACK_NAME}_haproxy_conf_{{ "./haproxy.cfg" | sha256file | substring(0,10) }}
100107
101108secrets:
102109 rabbit_erlang_cookie:
0 commit comments