I'm trying out a single-node rqlite instance in a docker-compose stack but a call to the HTTP API gives a 503 leader not found and the log shows that raft has entered follower state. I was under the impression that if joins weren't attempted, it should form a single-node-cluster?
[rqlited] 2023/06/01 09:22:33 go1.20, target architecture is amd64, operating system target is linux
[rqlited] 2023/06/01 09:22:33 launch command: /bin/rqlited -node-id b2e24d747bde -http-addr 0.0.0.0:4001 -http-adv-addr b2e24d747bde:4001 -raft-addr 0.0.0.0:4002 -raft-adv-addr b2e24d747bde:4002 /rqlite/file/data
[rqlited] 2023/06/01 09:22:33 Raft TCP mux Listener registered with byte header 1
[rqlited] 2023/06/01 09:22:33 preexisting node state detected in /rqlite/file/data
[mux] 2023/06/01 09:22:33 mux serving on [::]:4002, advertising b2e24d747bde:4002
[cluster] 2023/06/01 09:22:33 service listening on b2e24d747bde:4002
[rqlited] 2023/06/01 09:22:33 cluster TCP mux Listener registered with byte header 2
[http] 2023/06/01 09:22:33 execute queue processing started with capacity 1024, batch size 128, timeout 50ms
[http] 2023/06/01 09:22:33 service listening on [::]:4001
[rqlited] 2023/06/01 09:22:33 HTTP server started
[store] 2023/06/01 09:22:33 opening store with node ID b2e24d747bde
[store] 2023/06/01 09:22:33 configured for an in-memory database
[store] 2023/06/01 09:22:33 ensuring directory for Raft exists at /rqlite/file/data
[store] 2023/06/01 09:22:33 0 preexisting snapshots present
[store] 2023/06/01 09:22:33 first log index: 1, last log index: 2, last command log index: 0:
[store] 2023/06/01 09:22:33 created in-memory database at open
2023-06-01T09:22:34.001Z [INFO] raft: initial configuration: index=1 servers="[{Suffrage:Voter ID:02cf8bbf015b Address:02cf8bbf015b:4002}]"
[rqlited] 2023/06/01 09:22:34 node HTTP API available at http://b2e24d747bde:4001
[rqlited] 2023/06/01 09:22:34 connect using the command-line tool via 'rqlite -H b2e24d747bde -p 4001'
2023-06-01T09:22:34.001Z [INFO] raft: entering follower state: follower="Node at b2e24d747bde:4002 [Follower]" leader-address= leader-id=
2023-06-01T09:22:35.541Z [WARN] raft: heartbeat timeout reached, not part of a stable configuration or a non-voter, not triggering a leader election
oddly enough, it appears to work if I start it up without docker-compose
2023-06-01T10:14:18.984Z [WARN] raft: heartbeat timeout reached, starting election: last-leader-addr= last-leader-id=
2023-06-01T10:14:18.984Z [INFO] raft: entering candidate state: node="Node at 237ab643f0fd:4002 [Candidate]" term=2
2023-06-01T10:14:18.999Z [INFO] raft: election won: term=2 tally=1
2023-06-01T10:14:19.000Z [INFO] raft: entering leader state: leader="Node at 237ab643f0fd:4002 [Leader]"
and the stack is really simple
rqlite:
container_name: rqlite
image: rqlite/rqlite
ports:
- 4001:4001
restart: always
volumes:
- rqlite-data:/rqlite/file/data