-
Notifications
You must be signed in to change notification settings - Fork 5
/
docker-compose.prod.yml
197 lines (179 loc) · 4.59 KB
/
docker-compose.prod.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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
version: '3.5'
x-env-dirs: &env-dirs
REPOSITORY_DIR: /data/repository
WORKING_DIR: /data/workspace
STAGING_DIR: /data/staging
CONFIG_DIR: /config
RESOURCES_DIR: /app/resources
ARCHIVE_DIR: /data/archive
x-env-broker: &env-broker
BROKER_HOST: "broker"
BROKER_USER: &broker-user user
BROKER_PASSWORD: &broker-password password
x-env-jobdb: &env-jobdb
JOB_DB_URL: job-db
JOB_DB_PORT: 27017
JOB_DB_NAME: job_database
FIRST_OBJECT_ID: 2000
x-env-app-config: &env-app-config
BACKEND_URI: &backend-uri https://workbench.idai.world/api
CILANTRO_ENV: &cilantro-env prod
OJS_BASE_URL: &ojs-base-url http://publications.dainst.org/journals
OJS_URI: &ojs-uri https://publications.dainst.org/journals/plugins/generic/cilantro/api
OMP_URI: &omp-uri https://publications.dainst.org/books/plugins/generic/cilantro/api
ATOM_URI: &atom-uri https://archives.dainst.org/index.php
REPOSITORY_URI: &repository-uri https://workbench.idai.world/api/repository
services:
broker:
image: rabbitmq:3.8
configs:
- source: rabbitmq_config
target: /etc/rabbitmq/rabbitmq.conf
celery-db:
image: redis:latest
command: ["redis-server", "--appendonly", "yes"]
volumes:
- redis-data:/data
job-db:
image: mongo:5.0.1
volumes:
- mongo-data:/data/db
service:
image: dainst/cilantro-service:0.2.29
volumes:
- staging-data:/data/staging
- repository-data:/data/repository
- config:/config
working_dir: /app
environment:
<<: *env-dirs
<<: *env-broker
<<: *env-jobdb
DB_HOST: "celery-db"
CILANTRO_ENV: *cilantro-env
BACKEND_URI: *backend-uri
ATOM_URI: *atom-uri
OJS_BASE_URL: *ojs-base-url
networks:
- web
- default
deploy:
labels:
- "traefik.docker.network=web"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:workbench.idai.world; PathPrefixStrip:/api"
- "traefik.port=5000"
secrets:
- atom_api_key
default-worker:
user: ${UID}
image: dainst/cilantro-default-worker:0.2.25
working_dir: /app
volumes:
- staging-data:/data/staging
- workspace-data:/data/workspace
- archive-data:/data/archive
- repository-data:/data/repository
- config:/config
environment:
<<: *env-dirs
<<: *env-broker
<<: *env-jobdb
DB_HOST: "celery-db"
CILANTRO_ENV: *cilantro-env
BACKEND_URI: *backend-uri
OJS_URI: *ojs-uri
OMP_URI: *omp-uri
ATOM_URI: *atom-uri
REPOSITORY_URI: *repository-uri
secrets:
- ojs_auth_key
- omp_auth_key
- atom_api_key
convert-worker:
user: ${UID}
image: dainst/cilantro-convert-worker:0.2.52
working_dir: /app
volumes:
- workspace-data:/data/workspace
- config:/config
environment:
<<: *env-dirs
<<: *env-broker
<<: *env-jobdb
DB_HOST: "celery-db"
CILANTRO_ENV: *cilantro-env
nlp-heideltime-worker:
user: ${UID}
image: dainst/cilantro-nlp-heideltime-worker:0.1.23
working_dir: /app
volumes:
- workspace-data:/data/workspace
- config:/config
environment:
<<: *env-dirs
<<: *env-broker
<<: *env-jobdb
DB_HOST: "celery-db"
CILANTRO_ENV: *cilantro-env
nlp-worker:
user: ${UID}
image: dainst/cilantro-nlp-worker:0.1.17
working_dir: /app
volumes:
- workspace-data:/data/workspace
- config:/config
environment:
<<: *env-dirs
<<: *env-broker
<<: *env-jobdb
DB_HOST: "celery-db"
CILANTRO_ENV: *cilantro-env
frontend:
image: dainst/cilantro-frontend:0.2.39
networks:
- default
- web
deploy:
labels:
- "traefik.docker.network=web"
- "traefik.enable=true"
- "traefik.frontend.rule=Host:workbench.idai.world"
- "traefik.port=80"
secrets:
ojs_auth_key:
external: true
name: workbench_ojs_auth_key_2
omp_auth_key:
external: true
name: workbench_omp_auth_key_2
atom_api_key:
external: true
name: workbench_atom_api_key
volumes:
mongo-data:
name: workbench_mongo_data
external: true
redis-data:
workspace-data:
name: workbench_workspace_data
external: true
repository-data:
name: workbench_repository_data
external: true
archive-data:
name: workbench_archive_data
external: true
staging-data:
name: workbench_staging_data
external: true
config:
name: workbench_config
external: true
configs:
rabbitmq_config:
name: workbench-rabbit_mq_config
external: true
networks:
web:
external: true