-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.coding-box.prod.yaml
More file actions
93 lines (89 loc) · 4.15 KB
/
Copy pathdocker-compose.coding-box.prod.yaml
File metadata and controls
93 lines (89 loc) · 4.15 KB
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
services:
db:
image: ${REGISTRY_PATH}iqbberlin/coding-box-db:${TAG}
restart: always
liquibase:
image: ${REGISTRY_PATH}iqbberlin/coding-box-liquibase:${TAG}
backend:
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend.entrypoints=websecure"
- "traefik.http.routers.backend.rule=(HostRegexp(`www.${SERVER_NAME}`) || Host(`${SERVER_NAME}`)) && PathPrefix(`/api`)"
- "traefik.http.routers.backend.tls=true"
- "traefik.http.routers.backend.tls.certResolver=iqbresolver"
- "traefik.http.routers.backend.tls.domains[0].main=${SERVER_NAME}"
- "traefik.http.routers.backend.tls.domains[0].sans=www.${SERVER_NAME}"
- "traefik.http.routers.backend.middlewares=security-headers"
- "traefik.http.routers.backend.service=backend"
- "traefik.http.services.backend.loadbalancer.server.port=3333"
- "traefik.docker.network=app-net"
image: ${REGISTRY_PATH}iqbberlin/coding-box-backend:${TAG}
depends_on:
redis:
condition: service_healthy
environment:
APP_ROLE: api
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_PREFIX: ${REDIS_PREFIX:-coding-box}
NODE_OPTIONS: ${BACKEND_NODE_OPTIONS---max-old-space-size=4096}
GEOGEBRA_BUNDLE_DOWNLOAD_URL: ${GEOGEBRA_BUNDLE_DOWNLOAD_URL:-}
EXPORT_CODING_LIST_BATCH_SIZE: ${EXPORT_CODING_LIST_BATCH_SIZE:-500}
EXPORT_VERSIONED_BATCH_SIZE: ${EXPORT_VERSIONED_BATCH_SIZE:-250}
POSTGRES_POOL_MAX: ${POSTGRES_POOL_MAX:-10}
WORKSPACE_TOKEN_REPLAY_READ_MAX_DURATION_DAYS: ${WORKSPACE_TOKEN_REPLAY_READ_MAX_DURATION_DAYS:-90}
ALLOW_LEGACY_WORKSPACE_REPLAY_TOKENS: ${ALLOW_LEGACY_WORKSPACE_REPLAY_TOKENS:-true}
DISABLED_JOB_QUEUE_PROCESSORS: data-export
volumes:
- "backend_vol:/usr/src/coding-box-backend/packages"
- "export_temp_vol:/usr/src/coding-box-backend/temp"
restart: always
backend-export-worker:
image: ${REGISTRY_PATH}iqbberlin/coding-box-backend:${TAG}
depends_on:
redis:
condition: service_healthy
environment:
APP_ROLE: export-worker
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_PREFIX: ${REDIS_PREFIX:-coding-box}
GEOGEBRA_BUNDLE_DOWNLOAD_URL: ${GEOGEBRA_BUNDLE_DOWNLOAD_URL:-}
EXPORT_CODING_LIST_BATCH_SIZE: ${EXPORT_CODING_LIST_BATCH_SIZE:-500}
EXPORT_VERSIONED_BATCH_SIZE: ${EXPORT_VERSIONED_BATCH_SIZE:-250}
POSTGRES_POOL_MAX: ${EXPORT_WORKER_POSTGRES_POOL_MAX:-4}
WORKSPACE_TOKEN_REPLAY_READ_MAX_DURATION_DAYS: ${WORKSPACE_TOKEN_REPLAY_READ_MAX_DURATION_DAYS:-90}
ALLOW_LEGACY_WORKSPACE_REPLAY_TOKENS: ${ALLOW_LEGACY_WORKSPACE_REPLAY_TOKENS:-true}
JOB_QUEUE_PROCESSORS: data-export
PGOPTIONS: ${EXPORT_WORKER_PGOPTIONS:--c jit=off}
volumes:
- "backend_vol:/usr/src/coding-box-backend/packages"
- "export_temp_vol:/usr/src/coding-box-backend/temp"
deploy:
resources:
limits:
cpus: ${EXPORT_WORKER_CPU_LIMIT:-2}
memory: ${EXPORT_WORKER_MEMORY_LIMIT:-3G}
restart: always
frontend:
labels:
- "traefik.enable=true"
- "traefik.http.routers.frontend.entrypoints=websecure"
- "traefik.http.routers.frontend.rule=HostRegexp(`www.${SERVER_NAME}`) || Host(`${SERVER_NAME}`)"
- "traefik.http.routers.frontend.tls=true"
- "traefik.http.routers.frontend.tls.certResolver=iqbresolver"
- "traefik.http.routers.frontend.tls.domains[0].main=${SERVER_NAME}"
- "traefik.http.routers.frontend.tls.domains[0].sans=www.${SERVER_NAME}"
- "traefik.http.routers.frontend.middlewares=security-headers"
- "traefik.http.routers.frontend.service=frontend"
- "traefik.http.services.frontend.loadbalancer.server.port=8080"
- "traefik.docker.network=app-net"
image: ${REGISTRY_PATH}iqbberlin/coding-box-frontend:${TAG}
environment:
- KEYCLOAK_URL=${KEYCLOAK_URL:-https://keycloak.kodierbox.iqb.hu-berlin.de/}
- KEYCLOAK_REALM=${KEYCLOAK_REALM:-coding-box}
- KEYCLOAK_CLIENT_ID=${KEYCLOAK_CLIENT_ID:-coding-box}
- BACKEND_URL=${BACKEND_URL:-api/}
volumes:
- "./config/frontend/default.conf.template:/etc/nginx/templates/default.conf.template:ro"
restart: always