version: '3.8' services: consul-master: image: consul:latest hostname: consul-master command: > sh -c " consul agent -server -bootstrap-expect=2 -datacenter=dc1 -data-dir=/consul/data -node=consul-master -bind=100.117.106.136 -advertise=100.117.106.136 -client=0.0.0.0 -ui -log-level=INFO " ports: - "8500:8500" - "8600:8600/udp" - "8301:8301" - "8302:8302" volumes: - consul_master_data:/consul/data deploy: mode: replicated replicas: 1 placement: constraints: - node.hostname == master restart_policy: condition: on-failure delay: 5s max_attempts: 3 consul-ash3c: image: consul:latest hostname: consul-ash3c command: > sh -c " ASH3C_IP=$$(getent hosts ash3c | awk '{print $$1}'); consul agent -server -bootstrap-expect=2 -datacenter=dc1 -data-dir=/consul/data -node=consul-ash3c -bind=$$ASH3C_IP -advertise=$$ASH3C_IP -client=0.0.0.0 -retry-join=100.117.106.136 -ui -log-level=INFO " ports: - "8501:8500" - "8601:8600/udp" - "8311:8301" - "8312:8302" volumes: - consul_ash3c_data:/consul/data deploy: mode: replicated replicas: 1 placement: constraints: - node.hostname == ash3c restart_policy: condition: on-failure delay: 5s max_attempts: 3 depends_on: - consul-master volumes: consul_master_data: consul_ash3c_data: