11version : ' 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+
222services :
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