version: '3.7' services: consul-agent-1: &consul-agent image: consul:latest networks: - consul command: "agent -retry-join consul-server-bootstrap -client 0.0.0.0" consul-agent-2: <<: *consul-agent consul-agent-3: <<: *consul-agent consul-server-1: &consul-server <<: *consul-agent command: "agent -server -retry-join consul-server-bootstrap -client 0.0.0.0" consul-server-2: <<: *consul-server consul-server-bootstrap: <<: *consul-agent ports: - "8400:8400" - "8500:8500" - "8600:8600" - "8600:8600/udp" command: "agent -server -bootstrap-expect 3 -ui -client 0.0.0.0" mongodb: image: mongo:latest ports: - 127.0.0.1:27017:27017 volumes: - mongodb_data:/data/db redis: image: redis:latest ports: - 127.0.0.1:6379:6379 networks: consul: volumes: mongodb_data: