forked from jsbroks/coco-annotator
-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose.build.yml
156 lines (147 loc) · 4.16 KB
/
docker-compose.build.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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
version: "3.4"
volumes:
mongodb_data:
external: false
mongodb_data_r1:
external: false
mongodb_data_r2:
external: false
networks:
cocoannotator:
external: false
services:
webserver:
build:
context: .
dockerfile: ./Dockerfile
container_name: annotator_webclient
restart: always
ports:
- "5000:5000"
environment:
- SECRET_KEY=RandomSecretKeyHere
- FILE_WATCHER=true
- NAME=Test Annotator
- MASK_RCNN_FILE=/models/mask_rcnn_coco.h5
- MASK_RCNN_CLASSES=
BG,person,bicycle,car,motorcycle,airplane,
bus,train,truck,boat,traffic light,
fire hydrant,stop sign,parking meter,bench,bird,
cat,dog,horse,sheep,cow,elephant,bear,
zebra,giraffe,backpack,umbrella,handbag,tie,
suitcase,frisbee,skis,snowboard,sports ball,
kite,baseball bat,baseball glove,skateboard,
surfboard,tennis racket,bottle,wine glass,cup,
fork,knife,spoon,bowl,banana',apple,
sandwich,orange,broccoli,carrot,hot dog,pizza,
donut,cake,chair,couch,potted plant,bed,
dining table,toilet,tv,laptop,mouse,remote,
keyboard,cell phone,microwave,oven,toaster,
sink,refrigerator,book,clock,vase,scissors,
teddy bear,hair drier,toothbrush
volumes:
- "./datasets:/datasets"
- "./models:/models"
depends_on:
- database
- workers
networks:
- cocoannotator
workers:
container_name: annotator_workers
build:
context: .
dockerfile: ./backend/workers/Dockerfile
volumes:
- "./backend/config:/workspace/config"
- "./backend/webserver:/workspace/webserver"
- "./backend/workers:/workspace/workers"
- "./backend/database:/workspace/database"
- "./datasets:/datasets"
depends_on:
- messageq
- database
ports:
- 5555:5555
networks:
- cocoannotator
messageq:
image: rabbitmq:3
container_name: annotator_message_q
environment:
- RABBITMQ_DEFAULT_USER=user
- RABBITMQ_DEFAULT_PASS=password
ports:
- 5672:5672
networks:
- cocoannotator
database:
container_name: annotator_mongodb
image: mongo:4.0
ports:
- 27017:27017
restart: always
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/dev/null
volumes:
- "mongodb_data:/data/db"
entrypoint: [ "mongod","--smallfiles","--logpath=/dev/null","--port","27017", "--bind_ip_all", "--replSet", "rs0" ]
networks:
- cocoannotator
database_r1:
container_name: annotator_mongodb_r1
image: mongo:4.0
ports:
- 27027:27027
restart: always
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/dev/null
volumes:
- "mongodb_data_r1:/data/db"
entrypoint: [ "mongod","--smallfiles","--logpath=/dev/null","--port","27027", "--bind_ip_all", "--replSet", "rs0" ]
networks:
- cocoannotator
depends_on:
- database
database_r2:
container_name: annotator_mongodb_r2
image: mongo:4.0
ports:
- 27037:27037
restart: always
environment:
- MONGO_DATA_DIR=/data/db
- MONGO_LOG_DIR=/dev/null
volumes:
- "mongodb_data_r2:/data/db"
entrypoint: [ "mongod","--smallfiles","--logpath=/dev/null","--port","27037", "--bind_ip_all", "--replSet", "rs0" ]
healthcheck:
test: ["CMD","mongo","--host","database","--port","27017", "--eval", 'rs.initiate( { _id : "rs0",members: [{ _id: 0, host: "database:27017" },{ _id: 1, host: "database_r1:27027" },{ _id: 2, host: "database_r2:27037" } ]})']
interval: 15s
timeout: 10s
retries: 3
start_period: 10s
networks:
- cocoannotator
depends_on:
- database
- database_r1
backup:
build:
context: ./mongo_backup
dockerfile: ./Dockerfile
container_name: annotator_backup
volumes:
- /data4/annotator_backups:/backup
depends_on:
- database
environment:
- MONGO_HOST=database
- MONGO_PORT=27017
- CRON_TIME=0 */3 * * *
- BACKUP_OPTS="--oplog --gzip"
- RESTORE_OPTS="--drop --oplogReplay --gzip"
networks:
- cocoannotator