services: << service_name >>: image: hashicorp/consul:latest container_name: << service_name >> command: - agent - -server - -bootstrap-expect=1 - -ui - -client=0.0.0.0 - -advertise=<< advertise_ip >> - -http-port=<< port_http >> - -server-port=<< port_server >> - -serf-lan-port=<< port_lan >> - -serf-wan-port=<< port_wan >> - -dns-port=<< port_dns >> - -node=<< service_name >> environment: - CONSUL_BIND_INTERFACE=eth0 ports: - "<< port_http >>:<< port_http >>" - "<< port_server >>:<< port_server >>" - "<< port_lan >>:<< port_lan >>/tcp" - "<< port_lan >>:<< port_lan >>/udp" - "<< port_wan >>:<< port_wan >>/tcp" - "<< port_wan >>:<< port_wan >>/udp" - "<< port_dns >>:<< port_dns >>/tcp" - "<< port_dns >>:<< port_dns >>/udp" volumes: - << appdata_dir >>/<< service_name >>:/consul/data cap_add: - IPC_LOCK restart: unless-stopped