-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
90 lines (87 loc) · 2.33 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
version: "3"
services:
web_service:
build: .
command: [ "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "5000" ]
expose:
- "5000"
depends_on:
- pgpool
restart: always
deploy:
replicas: 4
nginx:
build: nginx/.
depends_on:
- web_service
ports:
- "8000:80"
pgprimary:
container_name: base_postgres
image: bitnami/postgresql
ports:
- 5432
volumes:
- pgprimary_data:/bitnami/postgresql
environment:
- POSTGRESQL_REPLICATION_MODE=master
- POSTGRESQL_REPLICATION_USER=postgres
- POSTGRESQL_REPLICATION_PASSWORD=s3cret
- POSTGRESQL_PASSWORD=s3cret
- POSTGRESQL_DATABASE=test_db
pgreplica:
image: bitnami/postgresql
ports:
- 5432
depends_on:
- pgprimary
environment:
- POSTGRESQL_REPLICATION_MODE=slave
- POSTGRESQL_REPLICATION_USER=postgres
- POSTGRESQL_REPLICATION_PASSWORD=s3cret
- POSTGRESQL_MASTER_HOST=pgprimary
- POSTGRESQL_PASSWORD=s3cret
pgreplica1:
image: bitnami/postgresql
ports:
- 5432
depends_on:
- pgprimary
environment:
- POSTGRESQL_REPLICATION_MODE=slave
- POSTGRESQL_REPLICATION_USER=postgres
- POSTGRESQL_REPLICATION_PASSWORD=s3cret
- POSTGRESQL_MASTER_HOST=pgprimary
- POSTGRESQL_PASSWORD=s3cret
pgreplica2:
image: bitnami/postgresql
ports:
- 5432
depends_on:
- pgprimary
environment:
- POSTGRESQL_REPLICATION_MODE=slave
- POSTGRESQL_REPLICATION_USER=postgres
- POSTGRESQL_REPLICATION_PASSWORD=s3cret
- POSTGRESQL_MASTER_HOST=pgprimary
- POSTGRESQL_PASSWORD=s3cret
pgpool:
image: bitnami/pgpool
ports:
- 5432:5432
depends_on:
- pgprimary
environment:
- PGPOOL_BACKEND_NODES=0:pgprimary:5432:0:primary:ALWAYS_PRIMARY,1:pgreplica:5432:5:replica,2:pgreplica1:5432:5:replica,3:pgreplica2:5432:5:replica
- PGPOOL_POSTGRES_USERNAME=postgres
- PGPOOL_POSTGRES_PASSWORD=s3cret
- PGPOOL_ADMIN_USERNAME=admin
- PGPOOL_ADMIN_PASSWORD=s3cret
- PGPOOL_ENABLE_LOAD_BALANCING=yes
- PGPOOL_ENABLE_STATEMENT_LOAD_BALANCING=yes
- PGPOOL_NUM_INIT_CHILDREN=10
- PGPOOL_MAX_POOL=10000
- PGPOOL_SR_CHECK_USER=postgres
- PGPOOL_SR_CHECK_PASSWORD=s3cret
volumes:
pgprimary_data: