-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
98 lines (94 loc) · 2.81 KB
/
docker-compose.yaml
File metadata and controls
98 lines (94 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
version: "2.4"
services:
pg-master:
image: "bitnami/postgresql:12"
cpu_count: 1
mem_limit: 256m
memswap_limit: 256m
expose:
- "5432"
volumes:
- ./data/pg_master:/bitnami/postgresql
environment:
POSTGRESQL_REPLICATION_MODE: "master"
POSTGRESQL_REPLICATION_USER: "repl_user"
POSTGRESQL_REPLICATION_PASSWORD: "repl_pass"
POSTGRESQL_PASSWORD: "pass"
POSTGRESQL_DATABASE: "target_db"
POSTGRESQL_SYNCHRONOUS_COMMIT_MODE: "on"
POSTGRESQL_NUM_SYNCHRONOUS_REPLICAS: 1
pg-slave-1:
image: "bitnami/postgresql:12"
cpu_count: 1
mem_limit: 256m
memswap_limit: 256m
expose:
- "5432"
volumes:
- ./data/pg_slave_1:/bitnami/postgresql
depends_on:
- pg-master
links:
- pg-master
environment:
POSTGRESQL_REPLICATION_MODE: "slave"
POSTGRESQL_REPLICATION_USER: "repl_user"
POSTGRESQL_REPLICATION_PASSWORD: "repl_pass"
POSTGRESQL_MASTER_HOST: "pg-master"
POSTGRESQL_MASTER_PORT_NUMBER: "5432"
# POSTGRESQL_USERNAME: "user"
POSTGRESQL_PASSWORD: "pass"
pg-slave-2:
image: "bitnami/postgresql:12"
expose:
- "5432"
volumes:
- ./data/pg_slave_2:/bitnami/postgresql
depends_on:
- pg-master
links:
- pg-master
environment:
POSTGRESQL_REPLICATION_MODE: "slave"
POSTGRESQL_REPLICATION_USER: "repl_user"
POSTGRESQL_REPLICATION_PASSWORD: "repl_pass"
POSTGRESQL_MASTER_HOST: "pg-master"
POSTGRESQL_MASTER_PORT_NUMBER: "5432"
# POSTGRESQL_USERNAME: "user"
POSTGRESQL_PASSWORD: "pass"
pg-lb:
image: "bitnami/pgpool:4"
cpu_count: 1
mem_limit: 256m
memswap_limit: 256m
ports:
- "5555:5432"
depends_on:
- pg-master
- pg-slave-1
- pg-slave-2
links:
- pg-master
- pg-slave-1
- pg-slave-2
healthcheck:
test: [ "CMD", "/opt/bitnami/scripts/pgpool/healthcheck.sh" ]
interval: 10s
timeout: 5s
retries: 5
environment:
# <Index>:<hostname>:<port>:<weight>:<directory>:<flags>
PGPOOL_BACKEND_NODES: "0:pg-master:5432:0:pg_master:ALWAYS_PRIMARY|DISALLOW_TO_FAILOVER,1:pg-slave-1:5432:1:pg_slave_1:DISALLOW_TO_FAILOVER,2:pg-slave-2:5432:1:pg_slave_2:DISALLOW_TO_FAILOVER"
PGPOOL_ENABLE_LOAD_BALANCING: "yes"
PGPOOL_ENABLE_STATEMENT_LOAD_BALANCING: "yes"
PGPOOL_POSTGRES_USERNAME: "postgres"
PGPOOL_POSTGRES_PASSWORD: "pass"
PGPOOL_ADMIN_USERNAME: "pgpool_admin"
PGPOOL_ADMIN_PASSWORD: "pgpool_password"
PGPOOL_SR_CHECK_USER: "repl_user"
PGPOOL_SR_CHECK_PASSWORD: "repl_pass"
PGPOOL_ENABLE_LDAP: "no"
PGPOOL_HEALTH_CHECK_MAX_RETRIES: 10
PGPOOL_ENABLE_LOG_CONNECTIONS: "yes"
PGPOOL_ENABLE_LOG_PER_NODE_STATEMENT: "yes"
PGPOOL_SR_CHECK_DATABASE: "target_db"