joyent-portal/docker-compose.yml

82 lines
2.3 KiB
YAML

#############################################################################
# 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:80
- 443:443
- 9090:9090
env_file: .env
environment:
- CONSUL_AGENT=1
labels:
- triton.cns.services=nginx
- com.docker.swarm.affinities=["container!=~*nginx*"]