-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
79 lines (78 loc) · 2.84 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
# Версия интерпретатора Python (указываем и забываем)
version: "3.9"
# Описание всех серверов MySQL
services:
# Описание master-server
mysql-master:
# Имя образа MySQL СУБД, скачиваемый из DockerHub (официальный образ)
image: 'mysql:8.0'
# Имя докер-контейнера (имя запущенного докер-образа, также имя хоста в DNS)
container_name: mysql-master
# Передача файлов из местной ОС внутрь контейнера
volumes:
- ./master/master.cnf:/etc/mysql/my.cnf
- ./master/master.sql:/docker-entrypoint-initdb.d/start.sql
- master_volume:/var/lib/mysql
# Указываем переменную окружения внутри контейнера
environment:
MYSQL_ROOT_PASSWORD: "password"
# Пробрасываем порт с хостовой машины внутрь докера для возможности подключения к СУБД снаружи
ports:
- '3306:3306'
# Описание Slave-server
mysql-slave-1:
image: 'percona:8.0'
container_name: mysql-slave-1
volumes:
- ./slave/slave_1.cnf:/etc/mysql/my.cnf
- ./slave/slave.sql:/docker-entrypoint-initdb.d/start.sql
- slave_1_volume:/var/lib/mysql
# Указываем, что slave запускается только после успешного запуска master
depends_on:
- mysql-master
environment:
MYSQL_ROOT_PASSWORD: "password"
ports:
- '3307:3306'
mysql-slave-2:
image: 'percona:8.0'
container_name: mysql-slave-2
volumes:
- ./slave/slave_2.cnf:/etc/mysql/my.cnf
- ./slave/slave.sql:/docker-entrypoint-initdb.d/start.sql
- slave_2_volume:/var/lib/mysql
# Указываем, что slave запускается только после успешного запуска master
depends_on:
- mysql-master
environment:
MYSQL_ROOT_PASSWORD: "password"
ports:
- '3308:3306'
mysql-slave-3:
image: 'percona:8.0'
container_name: mysql-slave-3
volumes:
- ./slave/slave_3.cnf:/etc/mysql/my.cnf
- ./slave/slave.sql:/docker-entrypoint-initdb.d/start.sql
- slave_3_volume:/var/lib/mysql
# Указываем, что slave запускается только после успешного запуска master
depends_on:
- mysql-master
environment:
MYSQL_ROOT_PASSWORD: "password"
ports:
- '3309:3306'
web:
build: ./app
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./app/:/usr/src/app/
ports:
- 8000:8000
env_file:
- app/.env.dev
volumes:
slave_1_volume:
slave_2_volume:
slave_3_volume:
master_volume: