joyent-portal/local-compose.yml

125 lines
2.9 KiB
YAML

#############################################################################
# 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:0.7.2-r0.8
command: >
/usr/local/bin/containerpilot
/bin/consul agent -server
-config-dir=/etc/consul
-log-level=err
-bootstrap-expect 1
-ui-dir /ui
restart: always
mem_limit: 128m
ports:
- 8500:8500
dns:
- 127.0.0.1
#############################################################################
# PROMETHEUS
#
# Prometheus is an open source performance monitoring tool
# it is included here for demo purposes and is not required
#############################################################################
prometheus:
image: autopilotpattern/prometheus:1.7.1-r20
restart: always
mem_limit: 1g
ports:
- 9090:9090
links:
- consul:consul
environment:
- CONSUL=consul
- CONSUL_AGENT=1
dns:
- 127.0.0.1
# Docker-compose wrapper
# Create _env file from running ./setup.sh
docker-compose-api:
build: ./docker-compose-api
links:
- consul:consul
expose:
- 4242
env_file:
- _env
environment:
- CONSUL=consul
restart: always
dns:
- 127.0.0.1
traefik:
image: d0cker/traefik
ports:
- "80:80"
- "8080:8080"
links:
- consul:consul
environment:
- CONSUL=consul
restart: always
#############################################################################
# FRONTEND
#############################################################################
frontend:
build: ./
dockerfile: packages/cp-frontend/Dockerfile
mem_limit: 512m
links:
- consul:consul
environment:
- CONSUL=consul
- PORT=3069
- REACT_APP_GQL_HOSTNAME=localhost
- REACT_APP_GQL_PORT=80
expose:
- 3069
#############################################################################
# BACKEND
#############################################################################
api:
build: ./
dockerfile: packages/portal-api/Dockerfile
mem_limit: 512m
links:
- consul:consul
- rethinkdb:rethinkdb
env_file:
- _env
environment:
- CONSUL=consul
- PORT=3000
- RETHINK_HOST=rethinkdb
- DOCKER_HOST=$DOCKER_HOST
- DOCKER_CERT_PATH=$DOCKER_CERT_PATH
- DOCKER_CLIENT_TIMEOUT=$DOCKER_CLIENT_TIMEOUT
- SDC_URL=$SDC_URL
- SDC_ACCOUNT=$SDC_ACCOUNT
- SDC_KEY_ID=$SDC_KEY_ID
expose:
- 3000
#############################################################################
# DATABASE
#############################################################################
rethinkdb:
image: rethinkdb
restart: always
mem_limit: 1g
ports:
- 8081:8080
expose:
- 28015
- 29015