-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
153 lines (140 loc) · 3.67 KB
/
Copy pathdocker-compose.yml
File metadata and controls
153 lines (140 loc) · 3.67 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
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
---
## container configuration for ROS & Kamera
## USE THIS FOR BUILDING not running!
## X11 note: To enable window display from inside the container, you must first
## provide permissions with xhost, usually `xhost +local:root` (not the safest)
## You also have to volume mount `/tmp/.X11-unix`, blank out $DISPLAY, and
## disable X11 shared memory `QT_X11_NO_MITSHM=1`
##
## Deployment profiles:
## follower -- headless sensor node: core + VIAME + postproc
## leader -- operator workstation: GUI + VIAME + postproc
## all -- everything
##
## Individual layer profiles:
## core -- Noetic base images only (no VIAME, no GUI)
## viame -- VIAME detector images only
## gui -- Noetic GUI images only
## pf -- postproc / postflight only
services:
## ======================= Noetic core chain ========================
# Lightweight Python service; independent of ROS distro.
kamerad:
build:
context: ./src/core/kamerad
image: "kitware/kamera:kamerad"
profiles:
- core
- follower
- leader
- all
# CUDA + ROS Noetic base with utility packages. No KAMERA source.
core-ros:
build:
context: .
dockerfile: docker/base/core-ros.dockerfile
image: "kamera/base/core-ros:${TAG_KAMERA_DEPS:-latest}"
profiles:
- core
- follower
- all
- gui
- leader
# System dependencies (drivers, C++ libs, ROS packages). No source copy.
core-deps:
build:
context: .
dockerfile: docker/base/core-deps.dockerfile
image: "kamera/base/core-deps:${TAG_KAMERA_DEPS:-latest}"
profiles:
- core
- follower
- all
- gui
- leader
# KAMERA source + catkin build on top of core-deps.
core:
build:
context: .
dockerfile: docker/core.dockerfile
image: "kitware/kamera:core"
tty: true
network_mode: host
volumes:
- "/tmp/.X11-unix:/tmp/.X11-unix"
- "${PWD}/src:/root/kamera/src"
profiles:
- core
- follower
- leader
- all
postproc:
build:
context: .
dockerfile: ./docker/kamerapy.dockerfile
args:
BRANCH: $BRANCH
image: "kitware/kamera:postproc"
network_mode: host
tty: true
profiles:
- core
- follower
- leader
- all
- pf
## ========================== VIAME detector chain =============================
viame-base:
build:
context: .
dockerfile: docker/base/detector-viame-deps.dockerfile
network: host
args:
VIAME_BRANCH: "${VIAME_BRANCH:-latest}"
image: "kamera/base/viame:${VIAME_BRANCH:-latest}"
profiles:
- viame
- follower
- leader
- all
viame:
build:
context: .
dockerfile: docker/detector.dockerfile
network: host
args:
VIAME_BRANCH: "${VIAME_BRANCH:-latest}"
image: "kitware/kamera:viame"
tty: true
network_mode: host
command: ["bash"]
profiles:
- viame
- follower
- leader
- all
## ========================== GUI chain ========================================
# GUI deps layered on the Noetic core-deps image.
gui-deps:
build:
context: .
dockerfile: docker/base/gui-deps.dockerfile
image: "kamera/base/gui-deps:${TAG_KAMERA_GUI_DEPS:-latest}"
profiles:
- gui
- leader
- all
gui:
container_name: gui
build:
context: .
dockerfile: docker/gui.dockerfile
args:
GUI_DEPS_IMAGE: "kamera/base/gui-deps:${TAG_KAMERA_GUI_DEPS:-latest}"
image: "kitware/kamera:gui"
profiles:
- gui
- leader
- all
## ====================================================================
...