apps/meteor/ee/server/services/docker-compose.yml
version: '3.1'
services:
authorization-service:
container_name: authorization-service
build:
context: .
args:
SERVICE: authorization
image: rocketchat/authorization-service:latest
env_file: .config/services/service.env
depends_on:
- nats
account-service:
container_name: account-service
build:
context: .
args:
SERVICE: account
image: rocketchat/account-service:latest
env_file: .config/services/service.env
depends_on:
- nats
presence-service:
container_name: presence-service
build:
context: .
args:
SERVICE: presence
image: rocketchat/presence-service:latest
env_file: .config/services/service.env
depends_on:
- nats
ddp-streamer-service:
container_name: ddp-streamer-service
build:
context: .
args:
SERVICE: ddp-streamer
image: rocketchat/ddp-streamer-service:latest
env_file: .config/services/service.env
depends_on:
- nats
- traefik
labels:
traefik.enable: true
traefik.http.services.ddp-streamer-service.loadbalancer.server.port: 3000
traefik.http.routers.ddp-streamer-service.service: ddp-streamer-service
ecdh-proxy-socket-service:
container_name: ecdh-proxy-socket-service
build:
context: .
args:
SERVICE: ecdh-proxy
image: rocketchat/ecdh-proxy-service:latest
env_file: .config/services/service.env
environment:
PROXY_HOST: ddp-streamer-service
STATIC_SEED: my seed
depends_on:
- nats
- traefik
- ddp-streamer-service
labels:
traefik.enable: true
traefik.http.services.ecdh-proxy-socket-service.loadbalancer.server.port: 3000
traefik.http.routers.ecdh-proxy-socket-service.service: ecdh-proxy-socket-service
ecdh-proxy-http-service:
container_name: ecdh-proxy-http-service
build:
context: .
args:
SERVICE: ecdh-proxy
image: rocketchat/ecdh-proxy-service:latest
env_file: .config/services/service.env
environment:
PROXY_HOST: host.docker.internal
STATIC_SEED: my seed
depends_on:
- nats
- traefik
labels:
traefik.enable: true
traefik.http.services.ecdh-proxy-http-service.loadbalancer.server.port: 3000
traefik.http.routers.ecdh-proxy-http-service.service: ecdh-proxy-http-service
stream-hub-service:
container_name: stream-hub-service
build:
context: .
args:
SERVICE: stream-hub
image: rocketchat/stream-hub-service:latest
env_file: .config/services/service.env
depends_on:
- nats
queue-worker-service:
container_name: queue-worker-service
build:
context: .
args:
SERVICE: queue-worker
image: rocketchat/queue-worker-service:latest
env_file: .config/services/service.env
depends_on:
- nats
omnichannel-transcript-service:
container_name: omnichannel-transcript-service
build:
context: .
args:
SERVICE: omnichannel-transcript
image: rocketchat/omnichannel-transcript-service:latest
env_file: .config/services/service.env
depends_on:
- nats
nats:
image: nats
ports:
- "4222:4222"
# tracing container for all tracing reporting
jaeger:
image: jaegertracing/all-in-one:latest
container_name: jaeger
ports:
- "16686:16686"
- "5775:5775/udp"
- "6831:6831/udp"
- "6832:6832/udp"
- "5778:5778"
- "14268:14268"
- "9411:9411"
depends_on:
- traefik
# environment:
# - QUERY_BASE_PATH=/jaeger
labels:
traefik.enable: true
traefik.http.routers.jaeger.rule: Host(`jaeger.${HOST_NAME}`)
traefik.http.routers.jaeger.entrypoints: web
traefik.http.services.jaeger.loadbalancer.server.port: 16686
# traefik.http.routers.jaeger.service: jaeger
grafana:
image: grafana/grafana
container_name: grafana
restart: unless-stopped
volumes:
- ./.config/grafana/provisioning/datasources:/etc/grafana/provisioning/datasources:ro
- ./.config/grafana/provisioning/dashboards/provider:/etc/grafana/provisioning/dashboards:ro
- ./.config/grafana/provisioning/dashboards/json-exports:/var/lib/grafana/dashboards:ro
depends_on:
- prometheus
- traefik
labels:
traefik.enable: true
traefik.http.routers.grafana.rule: Host(`grafana.${HOST_NAME}`)
traefik.http.routers.grafana.entrypoints: web
traefik.http.services.grafana.loadbalancer.server.port: 3000
prometheus:
image: quay.io/prometheus/prometheus
container_name: prometheus
restart: unless-stopped
command:
- --config.file=/etc/prometheus/prometheus.yml
- '--storage.tsdb.retention.time=12w'
- '--storage.tsdb.path=/prometheus'
volumes:
- ./.config/data/prometheus:/prometheus
- ./.config/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
depends_on:
- traefik
ports:
- 9090:9090
labels:
traefik.enable: true
traefik.http.routers.prometheus.rule: Host(`prometheus.${HOST_NAME}`)
traefik.http.routers.prometheus.entrypoints: web
traefik.http.services.prometheus.loadbalancer.server.port: 9090
traefik:
image: traefik
container_name: traefik
command:
- --entrypoints.web.address=:80
# - --entrypoints.websecure.address=:443
- --api=true
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --providers.file.directory=/servers/
ports:
- 80:80
# - 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./.config/traefik/servers/:/servers/
# - ./.config/traefik/acme.json:/acme.json
labels:
traefik.enable: true
# Dashboard
traefik.http.routers.traefik.rule: Host(`traefik.${HOST_NAME}`)
traefik.http.routers.traefik.service: api@internal
traefik.http.routers.traefik.entrypoints: web
cadvisor:
image: google/cadvisor
container_name: cadvisor
volumes:
# -/:/rootfs:ro
# -/var/run:/var/run:ro
# -/sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
# -/dev/disk/:/dev/disk:ro
ports:
- 8080:8080
# --privileged \
# --device=/dev/kmsg \