-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
96 lines (96 loc) · 2.95 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
services:
judge:
build:
context: .
args:
RELEASE: '--release'
command:
- --invoker=http://invoker:8000
- --port=1789
- --problems-source-dir=/etc/jjs/problems
- --toolchains=/etc/jjs/toolchains
volumes:
- problems:/etc/jjs/problems:ro
- toolchains:/etc/jjs/toolchains:ro
- judge_logs:/var/log/judges
ports:
- '1789:1789'
environment:
RUST_LOG: info,warp::filters::trace=warn,judge=debug,processor=debug
setup:
build: setup
volumes:
- ./setup-data/problems:/etc/problems:ro
- ./setup-data/toolchains:/etc/toolchains:ro
- problems:/var/problems
- toolchains:/var/toolchains
invoker:
image: ghcr.io/jjs-dev/jjs-invoker:latest
# TODO: investigate why this is required
privileged: true
# only needed for interactive debugging
# pid: host
environment:
RUST_LOG: info,invoker=trace,minion=debug,minion::linux::sandbox::watchdog=info
command:
- --shim=http://shim:8001
- --listen-address=tcp://0.0.0.0:8000
- --work-dir=/var/invoker/work
# Debugging flags; uncomment if needed
# - --debug-leak-sandboxes
# - --interactive-debug-url=http://invoker-strace-debug:8000/debug
volumes:
- pulled:/var/shim-share
- invoker_work:/var/invoker/work
- invoker_debug:/var/invoker/debug
expose:
- 8000
invoker-strace-debug:
image: ghcr.io/jjs-dev/jjs-invoker-strace-debugger:latest
privileged: true
pid: host
environment:
RUST_LOG: info,strace_debug=debug
volumes:
- strace:/var/jjs/debug/strace
expose:
- 8000
shim:
image: ghcr.io/jjs-dev/jjs-invoker-shim:latest
environment:
RUST_LOG: info
command:
- --allow-remote
- --port=8001
- --exchange-dir=/var/shim-share
- --invoker-exchange-dir=/var/shim-share
volumes:
- pulled:/var/shim-share
expose:
- 8001
healthcheck:
disable: true
debug:
image: ubuntu:focal
command:
- tail
- -f
- /dev/null
volumes:
- pulled:/mnt/pulled-toolchains
- problems:/mnt/problems
- toolchains:/mnt/toolchains
- invoker_work:/mnt/invoker
- invoker_debug:/mnt/invoker-debug
- judge_logs:/mnt/judge-logs
- strace:/mnt/strace
# only needed for interactive debugging (TODO: is it actually needed?)
# pid: host
volumes:
pulled: {}
problems: {}
toolchains: {}
invoker_work: {}
invoker_debug: {}
judge_logs: {}
strace: {}