Skip to content

Instantly share code, notes, and snippets.

@syrm
Created March 25, 2025 13:43
Show Gist options
  • Select an option

  • Save syrm/6787b98287c7c9c16ae21313227fa9eb to your computer and use it in GitHub Desktop.

Select an option

Save syrm/6787b98287c7c9c16ae21313227fa9eb to your computer and use it in GitHub Desktop.
name: raft
services:
debug:
image: debian:latest
command: ["sleep", "36000000"]
networks:
- raft-network
node1:
build: .
container_name: raft-node1
command: ["-id", "node1", "-http", "0.0.0.0:8001", "-raft", "0.0.0.0:7001", "-raftadv", "raft-node1:7001", "-dir", "/data/node1", "-bootstrap", "true"]
volumes:
- ./data/node1:/data/node1
ports:
- "38001:8001"
- "37001:7001"
networks:
- raft-network
node2:
build: .
container_name: raft-node2
command: ["-id", "node2", "-http", "0.0.0.0:8002", "-raft", "0.0.0.0:7002", "-raftadv", "raft-node2:7002", "-dir", "/data/node2", "-join", "raft-node1:8001"]
volumes:
- ./data/node2:/data/node2
ports:
- "38002:8002"
- "37002:7002"
networks:
- raft-network
depends_on:
- node1
node3:
build: .
container_name: raft-node3
command: ["-id", "node3", "-http", "0.0.0.0:8003", "-raft", "0.0.0.0:7003", "-raftadv", "raft-node3:7003", "-dir", "/data/node3", "-join", "raft-node1:8001"]
volumes:
- ./data/node3:/data/node3
ports:
- "38003:8003"
- "37003:7003"
networks:
- raft-network
depends_on:
- node1
networks:
raft-network:
driver: bridge
apiVersion: v1
kind: Pod
metadata:
name: raft1
spec:
containers:
- name: node
image: localhost/raft:latest
args: ["-id", "node1", "-http", "0.0.0.0:8001", "-raft", "0.0.0.0:7001", "-raftadv", "raft1:7001", "-dir", "/data/node", "-bootstrap", "true"]
ports:
- containerPort: 8001
hostPort: 38001
- containerPort: 7001
hostPort: 37001
volumeMounts:
- name: node-data
mountPath: /data/node
volumes:
- name: node-data
hostPath:
path: ./data/node1
type: Directory
---
apiVersion: v1
kind: Pod
metadata:
name: raft2
spec:
containers:
- name: node
image: localhost/raft:latest
args: ["-id", "node2", "-http", "0.0.0.0:8002", "-raft", "0.0.0.0:7002", "-raftadv", "raft2:7002", "-dir", "/data/node", "-join", "raft1:8001"]
ports:
- containerPort: 8002
hostPort: 38002
- containerPort: 7002
hostPort: 37002
volumeMounts:
- name: node-data
mountPath: /data/node
volumes:
- name: node-data
hostPath:
path: ./data/node2
type: Directory
---
apiVersion: v1
kind: Pod
metadata:
name: raft3
spec:
containers:
- name: node
image: localhost/raft:latest
args: ["-id", "node3", "-http", "0.0.0.0:8003", "-raft", "0.0.0.0:7003", "-raftadv", "raft3:7003", "-dir", "/data/node", "-join", "raft1:8001"]
ports:
- containerPort: 8003
hostPort: 38003
- containerPort: 7003
hostPort: 37003
volumeMounts:
- name: node-data
mountPath: /data/node
volumes:
- name: node-data
hostPath:
path: ./data/node3
type: Directory
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment