/
docker-compose.yml
124 lines (116 loc) · 3.22 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
115
116
117
118
119
120
121
122
123
124
version: "3"
services:
redis:
image: redis:alpine
deploy:
replicas: 1
placement:
constraints:
- node.role == manager
restart_policy:
condition: on-failure
ports:
- "6379:6379"
networks:
- cars
mysql:
image: mysql:5.6
environment:
- MYSQL_ROOT_PASSWORD=root
deploy:
replicas: 1
placement:
constraints:
- node.role == manager
restart_policy:
condition: on-failure
ports:
- "3306:3306"
networks:
- cars
scheduler:
image: binux/pyspider:latest
command: '--taskdb "mysql+taskdb://root:root@mysql:3306/taskdb" --resultdb "mysql+resultdb://root:root@mysql:3306/resultdb" --projectdb "mysql+projectdb://root:root@mysql:3306/projectdb" --message-queue "redis://redis:6379/db" scheduler --inqueue-limit 5000 --delete-time 43200'
ports:
- "23333:23333"
deploy:
replicas: 1
placement:
constraints:
- node.role != manager
restart_policy:
condition: on-failure
networks:
- cars
phantomjs:
image: binux/pyspider:latest
command: phantomjs
env_file:
- /home/docker/cars.env
deploy:
replicas: 2
placement:
constraints:
- node.role != manager
restart_policy:
condition: on-failure
ports:
- "25555:25555"
networks:
- cars
fetcher:
image: binux/pyspider:latest
command: '--message-queue "redis://redis:6379/db" --phantomjs-proxy "phantomjs:80" fetcher --xmlrpc'
env_file:
- /home/docker/cars.env
deploy:
replicas: 1
placement:
constraints:
- node.role != manager
restart_policy:
condition: on-failure
networks:
- cars
processor:
image: binux/pyspider:latest
command: '--projectdb "mysql+projectdb://root:root@mysql:3306/projectdb" --message-queue "redis://redis:6379/db" processor'
deploy:
replicas: 2
placement:
constraints:
- node.role != manager
restart_policy:
condition: on-failure
networks:
- cars
result-worker:
image: binux/pyspider:latest
command: '--taskdb "mysql+taskdb://root:root@mysql:3306/taskdb" --resultdb "mysql+resultdb://root:root@mysql:3306/resultdb" --projectdb "mysql+projectdb://root:root@mysql:3306/projectdb" --message-queue "redis://redis:6379/db" result_worker'
deploy:
replicas: 1
placement:
constraints:
- node.role == manager
restart_policy:
condition: on-failure
networks:
- cars
webui:
image: binux/pyspider:latest
command: '--taskdb "mysql+taskdb://root:root@mysql:3306/taskdb" --resultdb "mysql+resultdb://root:root@mysql:3306/resultdb" --projectdb "mysql+projectdb://root:root@mysql:3306/projectdb" --message-queue "redis://redis:6379/db" webui --max-rate 0.2 --max-burst 3 --scheduler-rpc "http://scheduler:23333/" --fetcher-rpc "http://fetcher/"'
env_file:
- /home/docker/cars.env
deploy:
replicas: 4
placement:
constraints:
- node.role == manager
restart_policy:
condition: on-failure
networks:
- cars
ports:
- "5000:5000"
networks:
cars: