-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
114 lines (105 loc) · 2.94 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
version: '3.9'
services:
rabbitmq:
image: rabbitmq:3.11.9-management
container_name: rabbitmq
ports:
- 15672:15672
- 5672:5672
restart: always
volumes:
- ~/.docker-conf/rabbitmq/data/:/var/lib/rabbitmq/mnesia/
environment:
- RABBITMQ_DEFAULT_USER=myuser
- RABBITMQ_DEFAULT_PASS=mypass
api:
build:
context: .
dockerfile: ./Psp.Api/Dockerfile
# ports:
# - 5000
restart: always
depends_on:
- rabbitmq
- postgresql-slave
- redis
environment:
- RabbitMqConnectionString=amqp://myuser:mypass@rabbitmq:5672
- DbConnectionString=Host=postgresql-slave;Database=my_database;Username=postgres;Password=my_password;
- RedisConnectionString=redis:6379
nginx:
image: nginx:1.23.3
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- rabbitmq
- api
- worker
ports:
- "5000:5000"
redis:
image: redis:7.0.0
container_name: redis2
command: bash -c "redis-server --appendonly no"
ports:
- 6379:6379
restart: always
volumes:
- redis-volume:/data
worker:
build:
context: .
dockerfile: ./Psp.Worker/Dockerfile
ports:
- 80
restart: always
depends_on:
- rabbitmq
- postgresql-master
environment:
- RabbitMqConnectionString=amqp://myuser:mypass@rabbitmq:5672
- DbConnectionString=Host=postgresql-master;Database=my_database;Username=postgres;Password=my_password;
postgresql-master:
image: docker.io/bitnami/postgresql:14
container_name: postgresql-master
ports:
- 4000:5432
volumes:
- postgresql-master-data:/bitnami/postgresql
- ./migration.sql:/docker-entrypoint-initdb.d/migration.sql
environment:
- POSTGRESQL_REPLICATION_MODE=master
- POSTGRESQL_REPLICATION_USER=repl_user
- POSTGRESQL_REPLICATION_PASSWORD=repl_password
- POSTGRESQL_USERNAME=postgres
- POSTGRESQL_PASSWORD=my_password
- POSTGRESQL_DATABASE=my_database
- ALLOW_EMPTY_PASSWORD=yes
postgresql-slave:
image: docker.io/bitnami/postgresql:14
container_name: postgresql-slave
ports:
- 4001:5432
volumes:
- postgresql-slave-data:/bitnami/postgresql
depends_on:
- postgresql-master
environment:
- POSTGRESQL_REPLICATION_MODE=slave
- POSTGRESQL_REPLICATION_USER=repl_user
- POSTGRESQL_REPLICATION_PASSWORD=repl_password
- POSTGRESQL_MASTER_HOST=postgresql-master
- POSTGRESQL_PASSWORD=my_password
- POSTGRESQL_MASTER_PORT_NUMBER=5432
- ALLOW_EMPTY_PASSWORD=yes
volumes:
postgresql-master-data:
driver: local
postgresql-slave-data:
driver: local
redis-volume:
driver: local
# docker-compose up --build --scale api=2 --scale worker=2
# docker-compose down
# docker volume ls
# docker volume rm $(docker volume ls -q)