Skip to content

Instantly share code, notes, and snippets.

@sgohl
Created February 21, 2020 13:19
Show Gist options
  • Save sgohl/5b4d194498d5aa139b0073af9969c2ad to your computer and use it in GitHub Desktop.
Save sgohl/5b4d194498d5aa139b0073af9969c2ad to your computer and use it in GitHub Desktop.
rocketchat swarm
version: "3.6"
x-mongo: &mongo
image: docker.io/mongo:3
hostname: '{{.Service.Name}}'
volumes:
- mongo:/data/db
- dumps:/dumps
command: mongod --replSet rs0
services:
mongo1:
<<: *mongo
deploy:
placement:
constraints: [node.labels.rocketchat_mongo1 == true]
mongo2:
<<: *mongo
deploy:
placement:
constraints: [node.labels.rocketchat_mongo2 == true]
mongo3:
<<: *mongo
deploy:
placement:
constraints: [node.labels.rocketchat_mongo3 == true]
mongo4:
<<: *mongo
deploy:
placement:
constraints: [node.labels.rocketchat_mongo4 == true]
mongo5:
<<: *mongo
deploy:
placement:
constraints: [node.labels.rocketchat_mongo5 == true]
app:
image: docker.io/rocketchat/rocket.chat:3.0.1
deploy:
replicas: 1
placement:
constraints: [node.role == manager]
labels:
- "traefik.enable=true"
- "traefik.port=3000"
- "traefik.frontend.rule=Host:${CHAT_DOMAIN}"
- "traefik.docker.network=traefik"
- "traefik.backend.loadbalancer.stickiness=true"
volumes:
- /auto/docker/rocketchat/scripts:/scripts
- /auto/docker/rocketchat/files:/files
networks:
- traefik
- default
environment:
ROOT_URL: "https://${CHAT_DOMAIN}"
MONGO_URL: 'mongodb://rocketchat_mongo1:27017,rocketchat_mongo2:27017,rocketchat_mongo3:27017,rocketchat_mongo4:27017,rocketchat_mongo5:27017/rocketchat?replicaSet=rs0&readPreference=nearest&w=majority'
MONGO_OPLOG_URL: 'mongodb://rocketchat_mongo1:27017,rocketchat_mongo2:27017,rocketchat_mongo3:27017,rocketchat_mongo4:27017,rocketchat_mongo5:27017/local?replicaSet=rs0'
INSTANCE_IP: 'app'
EXIT_UNHANDLEDPROMISEREJECTION: 'true'
volumes:
mongo:
name: '{{.Service.Name}}'
dumps:
driver: local
driver_opts:
o: bind
type: none
device: '/auto/docker/rocketchat/dumps/{{.Service.Name}}'
networks:
traefik:
external: true
name: traefik
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment