forked from paunin/PostDock
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
159 lines (148 loc) · 5.08 KB
/
docker-compose.yml
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
version: '2'
networks:
cluster:
driver: bridge
services:
pgmaster:
# image: paunin/postgresql-cluster-pgsql
build:
context: .
dockerfile: Pgsql.Dockerfile
environment:
INITIAL_NODE_TYPE: master # Used by `repmgr register` as initial node role
# Role can be changed on failover or in live cycle of cluster
# (default: standby, available: master|standby)
NODE_ID: 1 # Integer number of node
NODE_NAME: node1 # Node name
CLUSTER_NODE_NETWORK_NAME: pgmaster # (default: hostanme of the node)
#database we want to use for application
POSTGRES_PASSWORD: monkey_pass
POSTGRES_USER: monkey_user
POSTGRES_DB: monkey_db
CONFIGS: "listen_addresses:'*'"
# in format variable1:value1[,variable2:value2[,...]]
# used for pgpool.conf file
#defaults:
CLUSTER_NAME: pg_cluster # default is pg_cluster
REPLICATION_DB: replication_db # default is replication_db
REPLICATION_USER: replication_user # default is replication_user
REPLICATION_PASSWORD: replication_pass # default is replication_pass
ports:
- 5432:5432
networks:
cluster:
aliases:
- pgmaster
#<<< Branch 1
pgslave1:
# image: paunin/postgresql-cluster-pgsql
build:
context: .
dockerfile: Pgsql.Dockerfile
depends_on:
- pgmaster
environment:
REPLICATION_PRIMARY_HOST: pgmaster
NODE_ID: 2
NODE_NAME: node2
CLUSTER_NODE_NETWORK_NAME: pgslave1 # (default: hostanme of the node)
REPLICATION_UPSTREAM_NODE_ID: 1
ports:
- 5441:5432
networks:
cluster:
aliases:
- pgslave1
# Add more slaves if required
pgslave2:
# image: paunin/postgresql-cluster-pgsql
build:
context: .
dockerfile: Pgsql.Dockerfile
depends_on:
- pgslave1
environment:
REPLICATION_PRIMARY_HOST: pgslave1 # I want to have cascade Streeming replication
NODE_ID: 3
NODE_NAME: node3
CLUSTER_NODE_NETWORK_NAME: pgslave2 # (default: hostanme of the node)
REPLICATION_UPSTREAM_NODE_ID: 2
ports:
- 5442:5432
networks:
cluster:
aliases:
- pgslave2
#>>> Branch 1
#<<< Branch 2
pgslave3:
# image: paunin/postgresql-cluster-pgsql
build:
context: .
dockerfile: Pgsql.Dockerfile
depends_on:
- pgmaster
environment:
REPLICATION_PRIMARY_HOST: pgmaster
NODE_ID: 4
NODE_NAME: node4
CLUSTER_NODE_NETWORK_NAME: pgslave3 # (default: hostanme of the node)
REPLICATION_UPSTREAM_NODE_ID: 1
ports:
- 5443:5432
networks:
cluster:
aliases:
- pgslave3
pgslave4:
# image: paunin/postgresql-cluster-pgsql
build:
context: .
dockerfile: Pgsql.Dockerfile
depends_on:
- pgslave3
environment:
REPLICATION_PRIMARY_HOST: pgslave3
NODE_ID: 5
NODE_NAME: node5
CLUSTER_NODE_NETWORK_NAME: pgslave4 # (default: hostanme of the node)
REPLICATION_UPSTREAM_NODE_ID: 4
ports:
- 5444:5432
networks:
cluster:
aliases:
- pgslave4
#>>> Branch 2
pgpool:
# image: paunin/postgresql-cluster-pgpool
build:
context: .
dockerfile: Pgpool.Dockerfile
depends_on:
- pgmaster
- pgslave1
- pgslave2
environment:
PCP_USER: pcp_user
PCP_PASSWORD: pcp_pass
REPLICATION_USER: replication_user
REPLICATION_PASSWORD: replication_pass
DB_USERS: monkey_user:monkey_pass # in format user:password[,user:password[...]]
BACKENDS: "0:pgmaster:5432:1:/var/lib/postgresql/data:ALLOW_TO_FAILOVER,1:pgslave1::::,2:pgslave2::::,3:pgslave3::::"
# in format num:host:port:weight:data_directory:flag[,...]
# defaults:
# port: 5432
# weight: 1
# data_directory: /var/lib/postgresql/data
# flag: ALLOW_TO_FAILOVER
CONFIGS: "num_init_children:250,max_pool:4,search_primary_node_timeout:5"
# in format variable1:value1[,variable2:value2[,...]]
# used for pgpool.conf file
ports:
- 5430:5432
- 9898:9898 # PCP
networks:
cluster:
aliases:
- pgpool