Skip to content

Commit 4e543b3

Browse files
committed
Makes web app highly available
1 parent c067c5b commit 4e543b3

1 file changed

Lines changed: 46 additions & 18 deletions

File tree

deployment/docker-compose.yml

Lines changed: 46 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,47 @@
11
version: '3'
2+
3+
# yaml anchors to remove repeated code for setting up 'clustered services'
4+
x-mysql-server: &mysql-server
5+
env_file:
6+
- mysql-server.env
7+
image: mysql/mysql-server:8.0.12
8+
healthcheck:
9+
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
10+
timeout: 20s
11+
retries: 10
12+
13+
x-dbwebapp: &dbwebapp
14+
env_file:
15+
- dbwebapp.env
16+
build:
17+
context: ../
18+
image: local-dbwebapp
19+
depends_on:
20+
- mysql-router
21+
222
services:
23+
324
mysql-server-1:
4-
env_file:
5-
- mysql-server.env
6-
image: mysql/mysql-server:8.0.12
25+
<<: *mysql-server
26+
container_name: mysql-server-1
727
command: ["mysqld","--server_id=1","--binlog_checksum=NONE","--gtid_mode=ON","--enforce_gtid_consistency=ON","--log_bin","--log_slave_updates=ON","--master_info_repository=TABLE","--relay_log_info_repository=TABLE","--transaction_write_set_extraction=XXHASH64","--user=mysql","--skip-host-cache","--skip-name-resolve", "--default_authentication_plugin=mysql_native_password"]
828
ports:
929
- "3301:3306"
1030
mysql-server-2:
11-
env_file:
12-
- mysql-server.env
13-
image: mysql/mysql-server:8.0.12
31+
<<: *mysql-server
32+
container_name: mysql-server-2
1433
command: ["mysqld","--server_id=2","--binlog_checksum=NONE","--gtid_mode=ON","--enforce_gtid_consistency=ON","--log_bin","--log_slave_updates=ON","--master_info_repository=TABLE","--relay_log_info_repository=TABLE","--transaction_write_set_extraction=XXHASH64","--user=mysql","--skip-host-cache","--skip-name-resolve", "--default_authentication_plugin=mysql_native_password"]
1534
ports:
1635
- "3302:3306"
1736
mysql-server-3:
18-
env_file:
19-
- mysql-server.env
20-
image: mysql/mysql-server:8.0.12
37+
<<: *mysql-server
38+
container_name: mysql-server-3
2139
command: ["mysqld","--server_id=3","--binlog_checksum=NONE","--gtid_mode=ON","--enforce_gtid_consistency=ON","--log_bin","--log_slave_updates=ON","--master_info_repository=TABLE","--relay_log_info_repository=TABLE","--transaction_write_set_extraction=XXHASH64","--user=mysql","--skip-host-cache","--skip-name-resolve", "--default_authentication_plugin=mysql_native_password"]
2240
ports:
2341
- "3303:3306"
42+
2443
mysql-shell:
44+
container_name: mysql-shell
2545
env_file:
2646
- mysql-shell.env
2747
image: neumayer/mysql-shell-batch
@@ -31,7 +51,9 @@ services:
3151
- mysql-server-1
3252
- mysql-server-2
3353
- mysql-server-3
54+
3455
mysql-router:
56+
container_name: mysql-router
3557
env_file:
3658
- mysql-router.env
3759
image: mysql/mysql-router:8.0
@@ -43,13 +65,19 @@ services:
4365
- mysql-server-3
4466
- mysql-shell
4567
restart: on-failure
46-
dbwebapp:
47-
env_file:
48-
- dbwebapp.env
49-
build:
50-
context: ../
51-
image: local-dbwebapp
68+
69+
dbwebapp-1:
70+
<<: *dbwebapp
71+
container_name: dbwebapp-1
5272
ports:
53-
- "8080:8080"
54-
depends_on:
55-
- mysql-router
73+
- "8081:8080"
74+
dbwebapp-2:
75+
<<: *dbwebapp
76+
container_name: dbwebapp-2
77+
ports:
78+
- "8082:8080"
79+
dbwebapp-3:
80+
<<: *dbwebapp
81+
container_name: dbwebapp-3
82+
ports:
83+
- "8083:8080"

0 commit comments

Comments
 (0)