single node with docker-compose:
version: '3'
services:
postgres:
image: "radondb/radondb-postgresql:15.0-v1.1.0"
environment:
POSTGRES_DB: "lzzhang"
POSTGRES_USER: "lzzhang"
POSTGRES_PASSWORD: "lzzhang"
PG_CONFIG_max_connections: 101
PG_HBA_0: "host all all all trust"
network_mode: host
cluster :
create net:
docker network create test
monitor:
docker run --rm -it --net=test -h monitor --name monitor -e PG_MODE=monitor -e AUTOCTL_NODE_PASSWORD=password -e EXTERNAL_HOSTNAME=monitor radondb/radondb-postgresql:15.0-v1.1.0 auto_failover
readwrite:
docker run --rm -it --net=test -h readwrite --name readwrite -e PG_MODE=readwrite -e AUTOCTL_NODE_PASSWORD=password -e EXTERNAL_HOSTNAME=readwrite -e MONITOR_HOSTNAME=monitor -e AUTOCTL_REPLICATOR_PASSWORD=password -e PG_CONFIG_port=5432 radondb/radondb-postgresql:15.0-v1.1.0 auto_failover
standby:
docker run --rm -it --net=test -h standby --name standby -e PG_MODE=readwrite -e AUTOCTL_NODE_PASSWORD=password -e EXTERNAL_HOSTNAME=standby -e MONITOR_HOSTNAME=monitor -e AUTOCTL_REPLICATOR_PASSWORD=password -e PG_CONFIG_port=5432 radondb/radondb-postgresql:15.0-v1.1.0 auto_failover
readonly:
docker run --rm -it --net=test -h readonly --name readonly -e PG_MODE=readonly -e AUTOCTL_NODE_PASSWORD=password -e EXTERNAL_HOSTNAME=readonly -e MONITOR_HOSTNAME=monitor -e AUTOCTL_REPLICATOR_PASSWORD=password -e PG_STREAMING=sync -e PG_CONFIG_port=5432 radondb/radondb-postgresql:15.0-v1.1.0 auto_failover
connect monitor node:
[lzzhang@lzzhang script]$ docker exec -it monitor psql -U postgres -d pg_auto_failover -p 55555
psql (15.0)
Type "help" for help.
pg_auto_failover=# select nodehost, reportedstate from pgautofailover.node;
nodehost | reportedstate
-----------+---------------
standby | secondary
readwrite | primary
(2 rows)
more info at: https://github.com/radondb/multi-platform-postgresql
Content type
Image
Digest
sha256:0a03f7d30…
Size
356.9 MB
Last updated
over 2 years ago
docker pull radondb/radondb-postgresql:14.5-v1.4.0