forked from webrecorder/browsertrix
-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
147 lines (112 loc) · 2.85 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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
version: '3.8'
services:
backend:
build: ./backend
image: ${REGISTRY}webrecorder/browsertrix-backend:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
configs:
- shared_job_config
secrets:
- storages
env_file:
- ./configs/config.env
depends_on:
- minio
- mongo
# enable to expose backend api container directly
# ports:
# - 8000:8000
environment:
- CRAWLER_FQDN_SUFFIX=
- JOB_IMAGE=${REGISTRY}webrecorder/browsertrix-backend:latest
deploy:
placement:
constraints:
- node.role == manager
frontend:
build: ./frontend
image: ${REGISTRY}webrecorder/browsertrix-frontend:latest
ports:
- 9871:80
depends_on:
- backend
- minio
environment:
- BACKEND_HOST=backend
- CRAWLER_FQDN_SUFFIX=
- CRAWLER_SVC_SUFFIX=
swarm-cronjob:
image: crazymax/swarm-cronjob
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- "TZ=UTC"
- "LOG_LEVEL=debug"
- "LOG_JSON=false"
deploy:
placement:
constraints:
- node.role == manager
prune-resources:
image: docker
command: ["docker", "volumes", "prune", "-f", "--filter", "label=crawl"]
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
mode: global
labels:
- "swarm.cronjob.enable=true"
- "swarm.cronjob.schedule=0 */5 * * *"
- "swarm.cronjob.skip-running=false"
restart_policy:
condition: none
mongo:
image: mongo
volumes:
- btrix-mongo-data:/data/db
env_file:
- ./configs/config.env
minio:
image: minio/minio
#command: ["server", "/data", "--console-address", ":9001"]
entrypoint: "/bin/sh"
# auto-create bucket via existing dir (only for single-node mode)
command: ["-c", "mkdir -p /data/$$MINIO_BUCKET; /usr/bin/docker-entrypoint.sh server /data --console-address :9001"]
volumes:
- btrix-minio-data:/data
env_file:
- ./configs/config.env
# enable below to access minio console directly
# ports:
# - 9001:9001
#
# environment:
# - MINIO_SERVER_URL=http://127.0.0.1:9000
# enable to support signing of wacz files
# port 80 must be open to automatically generate cert via LetsEncrypt
# authsign:
# image: webrecorder/authsign:0.4.0
# volumes:
# - btrix-sign-data:/data
# - ./configs/signing.yaml:/app-config/signing.yaml
# environment:
# - CONFIG=/app-config/signing.yaml
# env_file:
# - ./configs/config.env
# ports:
# - 80:80
volumes:
btrix-redis-data:
btrix-mongo-data:
btrix-minio-data:
btrix-sign-data:
networks:
default:
name: btrix-net
configs:
shared_job_config:
file: ./configs/config.yaml
secrets:
storages:
file: ./configs/storages.yaml