--- version: '3' # Default consul image x-consul: &consul #image: consul:latest image: consul:1.10 restart: unless-stopped networks: - default environment: CONSUL_BIND_INTERFACE: eth0 # Roles configuration x-consul-agent: &consul_agent <<: *consul command: "agent -retry-join consul -client 0.0.0.0" x-consul-server: &consul_server <<: *consul command: "agent -server -retry-join consul -client 0.0.0.0" x-consul-bootstrap: &consul_server_bootstrap <<: *consul_server command: "agent -server -bootstrap-expect 3 -ui -client 0.0.0.0" #ports: # - "8400:8400" # - "8500:8500" # - "8600:8600" # - "8600:8600/udp" networks: default: services: consul: <<: *consul_server_bootstrap hostname: consul volumes: - $app_data_dir/server1:/consul/data consul-server-1: <<: *consul_server hostname: consul-server-1 consul-server-2: <<: *consul_server hostname: consul-server-2 consul-agent: <<: *consul_agent hostname: consul-agent-0 # consul-agent-1: # <<: *consul_agent # hostname: consul-agent-1 # # consul-agent-2: # <<: *consul_agent # hostname: consul-agent-2