############################################################################# # CONSUL ############################################################################# consul: image: progrium/consul:latest labels: - triton.cns.services=consul - com.docker.swarm.affinities=["container!=~*"] restart: always mem_limit: 128m expose: - 53 - 8300 - 8301 - 8302 - 8400 - 8500 env_file: .env ports: - 8500:8500 command: -server -bootstrap -ui-dir /ui ############################################################################# # CloudAPI GraphQL ############################################################################# cloudapi: image: quay.io/yldio/joyent-dashboard-cloudapi-graphql:latest mem_limit: 128m labels: - triton.cns.services=cloudapi - com.docker.swarm.affinities=["container!=~*cloudapi*"] env_file: .env environment: - CONSUL_AGENT=1 - PORT=3000 ports: - 3000:3000 ############################################################################# # Frontend ############################################################################# frontend: image: quay.io/yldio/joyent-dashboard-frontend:latest mem_limit: 128m labels: - triton.cns.services=frontend - com.docker.swarm.affinities=["container!=~*frontend*"] env_file: .env environment: - CONSUL_AGENT=1 - PORT=8000 ports: - 8000:8000 ############################################################################# # UI ############################################################################# ui: image: quay.io/yldio/joyent-dashboard-ui:latest mem_limit: 128m labels: - triton.cns.services=ui - com.docker.swarm.affinities=["container!=~*ui*"] env_file: .env environment: - CONSUL_AGENT=1 - PORT=8080 ############################################################################# # Nginx as a load-balancing tier and reverse proxy ############################################################################# nginx: image: quay.io/yldio/joyent-portal-nginx restart: always mem_limit: 128m ports: - 80 - 443 - 9090 env_file: .env environment: - CONSUL_AGENT=1 labels: - triton.cns.services=nginx - com.docker.swarm.affinities=["container!=~*nginx*"]