version: '3.9' services: haproxy: container_name: haproxy image: haproxy:2.3 depends_on: - emqx1 - emqx2 volumes: - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg - ../../etc/certs:/usr/local/etc/haproxy/certs # ports: # - "1883:1883" # - "8883:8883" # - "8083:8083" # - "8084:8084" networks: - emqx_bridge working_dir: /usr/local/etc/haproxy command: - bash - -c - | cat /usr/local/etc/haproxy/certs/cert.pem /usr/local/etc/haproxy/certs/key.pem > /usr/local/etc/haproxy/certs/emqx.pem haproxy -f /usr/local/etc/haproxy/haproxy.cfg emqx1: container_name: node1.emqx.io image: $TARGET:$EMQX_TAG environment: - "EMQX_NAME=emqx" - "EMQX_HOST=node1.emqx.io" - "EMQX_CLUSTER__DISCOVERY=static" - "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io" - "EMQX_LISTENER__TCP__EXTERNAL__PROXY_PROTOCOL=on" - "EMQX_LISTENER__WS__EXTERNAL__PROXY_PROTOCOL=on" - "EMQX_ZONE__EXTERNAL__RETRY_INTERVAL=2s" - "EMQX_MQTT__MAX_TOPIC_ALIAS=10" - "EMQX_LOG__LEVEL=debug" command: - /bin/sh - -c - | sed -i "s 127.0.0.1 $$(ip route show |grep "link" |awk '{print $$1}') g" /opt/emqx/etc/acl.conf sed -i '/emqx_telemetry/d' /opt/emqx/data/loaded_plugins /opt/emqx/bin/emqx foreground healthcheck: test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"] interval: 5s timeout: 25s retries: 5 networks: emqx_bridge: aliases: - node1.emqx.io emqx2: container_name: node2.emqx.io image: $TARGET:$EMQX_TAG environment: - "EMQX_NAME=emqx" - "EMQX_HOST=node2.emqx.io" - "EMQX_CLUSTER__DISCOVERY=static" - "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io" - "EMQX_LISTENER__TCP__EXTERNAL__PROXY_PROTOCOL=on" - "EMQX_LISTENER__WS__EXTERNAL__PROXY_PROTOCOL=on" - "EMQX_ZONE__EXTERNAL__RETRY_INTERVAL=2s" - "EMQX_MQTT__MAX_TOPIC_ALIAS=10" - "EMQX_LOG__LEVEL=debug" command: - /bin/sh - -c - | sed -i "s 127.0.0.1 $$(ip route show |grep "link" |awk '{print $$1}') g" /opt/emqx/etc/acl.conf sed -i '/emqx_telemetry/d' /opt/emqx/data/loaded_plugins /opt/emqx/bin/emqx foreground healthcheck: test: ["CMD", "/opt/emqx/bin/emqx", "ping"] interval: 5s timeout: 25s retries: 5 networks: emqx_bridge: aliases: - node2.emqx.io networks: emqx_bridge: driver: bridge name: emqx_bridge ipam: driver: default config: - subnet: 172.100.239.0/24 gateway: 172.100.239.1