############################################################################# # CONSUL # # Consul is the service catalog that helps discovery between the components # Change "-bootstrap" to "-bootstrap-expect 3", then scale to 3 or more to # turn this into an HA Consul raft. ############################################################################# consul: image: autopilotpattern/consul:latest command: > /usr/local/bin/containerpilot /bin/consul agent -server -bootstrap-expect 3 -config-dir=/etc/consul -ui-dir /ui restart: always mem_limit: 128m ports: - 8500 dns: - 127.0.0.1 labels: - triton.cns.services=consul-$CIRCLE_BRANCH - com.docker.swarm.affinities=["container!=~*"] ############################################################################# # PROMETHEUS # # Prometheus is an open source performance monitoring tool # it is included here for demo purposes and is not required ############################################################################# prometheus: image: autopilotpattern/prometheus:latest restart: always mem_limit: 1g ports: - 9090 labels: - triton.cns.services=prometheus-$CIRCLE_BRANCH - com.docker.swarm.affinities=["container!=~*prometheus*"] ############################################################################# # STYLEGUIDE ############################################################################# styleguide: image: quay.io/yldio/joyent-ui-toolkit:$CIRCLE_BRANCH ports: - 5000 mem_limit: 512m labels: - triton.cns.services=styleguide-$CIRCLE_BRANCH - com.docker.swarm.affinities=["container!=~*styleguide*"] environment: - CONSUL_AGENT=1 - PORT=5000 ############################################################################# # FRONTEND ############################################################################# cp-frontend: image: quay.io/yldio/joyent-cp-frontend:$CIRCLE_BRANCH mem_limit: 512m labels: - triton.cns.services=cp-frontend-$CIRCLE_BRANCH - com.docker.swarm.affinities=["container!=~*cp-frontend*"] environment: - CONSUL_AGENT=1 - PORT=5000 ports: - 5000 ############################################################################# # BACKEND ############################################################################# gql-mock-server: image: quay.io/yldio/joyent-cp-gql-mock-server:$CIRCLE_BRANCH mem_limit: 512m labels: - triton.cns.services=gql-mock-server-$CIRCLE_BRANCH - com.docker.swarm.affinities=["container!=~*gql-mock-server*"] environment: - CONSUL_AGENT=1 - PORT=3000 ports: - 3000