Skip to content

Instantly share code, notes, and snippets.

@bluebeel
Created December 5, 2019 16:42
Show Gist options
  • Save bluebeel/70cfbb4eb0bd84d9e4d4d8046cf7e948 to your computer and use it in GitHub Desktop.
Save bluebeel/70cfbb4eb0bd84d9e4d4d8046cf7e948 to your computer and use it in GitHub Desktop.
docker-swarm nats streaming cluster
version: '3.5'
services:
nats-1:
command:
- "-D"
- "-p"
- "4222"
- "-cluster"
- "nats://0.0.0.0:6222"
- "-routes"
- "nats://nats-1:6222,nats://nats-2:6222,nats://nats-3:6222"
image: "nats"
ports:
- "4222:4222"
- "6222:6222"
networks:
- nats
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == worker]
nats-2:
command:
- "-D"
- "-p"
- "4222"
- "-cluster"
- "nats://0.0.0.0:6222"
- "-routes"
- "nats://nats-1:6222,nats://nats-2:6222,nats://nats-3:6222"
image: "nats"
ports:
- "4222:4222"
- "6222:6222"
networks:
- nats
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == worker]
nats-3:
command:
- "-D"
- "-p"
- "4222"
- "-cluster"
- "nats://0.0.0.0:6222"
- "-routes"
- "nats://nats-1:6222,nats://nats-2:6222,nats://nats-3:6222"
image: "nats"
ports:
- "4222:4222"
- "6222:6222"
networks:
- nats
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == worker]
nats-streaming-1:
image: "nats-streaming"
command:
- "-store file -dir store -clustered -cluster_id swarm -cluster_node_id node-1"
- "-cluster_peers node-1,node-2,node-3"
- "-routes"
- "-nats_server nats://nats-1:4222,nats://nats-2:4222,nats://nats-3:4222"
volumes:
- nats:/store
networks:
- nats
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == worker]
nats-streaming-2:
image: "nats-streaming"
command:
- "-store file -dir store -clustered -cluster_id swarm -cluster_node_id node-2"
- "-cluster_peers node-1,node-2,node-3"
- "-routes"
- "-nats_server nats://nats-1:4222,nats://nats-2:4222,nats://nats-3:4222"
volumes:
- nats:/store
networks:
- nats
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == worker]
nats-streaming-3:
image: "nats-streaming"
command:
- "-store file -dir store -clustered -cluster_id swarm -cluster_node_id node-3"
- "-cluster_peers node-1,node-2,node-3"
- "-routes"
- "-nats_server nats://nats-1:4222,nats://nats-2:4222,nats://nats-3:4222"
volumes:
- nats:/store
networks:
- nats
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == worker]
networks:
nats:
name: nats
driver: overlay
volumes:
nats:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment