-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathdocker-compose.yaml
More file actions
162 lines (145 loc) · 4.03 KB
/
docker-compose.yaml
File metadata and controls
162 lines (145 loc) · 4.03 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
154
155
156
157
158
159
160
161
162
services:
base:
image: botbotrobotics/botbrain:base
stdin_open: true
tty: true
network_mode: host
ipc: host
privileged: true
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
volumes:
- ./botbrain_ws/:/botbrain_ws
- /dev:/dev
- /run:/run
environment:
RMW_IMPLEMENTATION: rmw_cyclonedds_cpp
CYCLONEDDS_URI: "file:///botbrain_ws/cyclonedds_config.xml"
dev:
extends: base
container_name: dev
user: root
command: ["bash", "-lc", "bash"]
builder_base:
extends: base
container_name: builder_base
command: ["bash", "-lc", "colcon build --packages-select \
go2_pkg \
tita_pkg \
bot_bringup \
bot_description \
bot_custom_interfaces \
joystick_bot \
bot_localization \
bot_navigation \
bot_localization_interfaces \
bot_state_machine \
bot_jetson_stats \
bot_jetson_stats_interfaces \
bot_rosa \
g1_pkg"]
state_machine:
extends: base
container_name: state_machine
command: ["bash", "-lc", "source install/setup.bash && ros2 launch bot_state_machine state_machine.launch.py"]
restart: always
bringup:
extends: base
container_name: bringup
command: ["bash", "-lc", "source install/setup.bash && ros2 launch bot_bringup bringup.launch.py"]
restart: always
localization:
extends: base
container_name: localization
command: ["bash", "-lc", "source install/setup.bash && ros2 launch bot_localization localization.launch.py"]
restart: always
navigation:
extends: base
container_name: navigation
command: ["bash", "-lc", "source install/setup.bash && ros2 launch bot_navigation navigation.launch.py"]
restart: always
jetson_stats:
extends: base
container_name: jetson_stats
command: ["bash", "-lc", "source install/setup.bash && ros2 launch bot_jetson_stats stats.launch.py"]
restart: always
rosa:
extends: base
container_name: rosa
command: ["bash", "-lc", "source install/setup.bash && ros2 launch bot_rosa rosa.launch.py"]
restart: always
yolo_base:
image: botbotrobotics/botbrain:yolo
stdin_open: true
tty: true
network_mode: host
ipc: host
privileged: true
runtime: nvidia
shm_size: 2gb
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
environment:
YOLO_CONFIG_DIR: /root/.cache/ultralytics
RMW_IMPLEMENTATION: rmw_cyclonedds_cpp
CYCLONEDDS_URI: "file:///botbrain_ws/cyclonedds_config.xml"
volumes:
- ./botbrain_ws/:/botbrain_ws
- /dev:/dev
- /run:/run
- ./botbrain_ws/src/bot_yolo/models:/root/.cache/ultralytics
builder_yolo:
extends: yolo_base
container_name: builder_yolo
command: ["bash", "-lc", "colcon build --packages-select \
bot_yolo"]
yolo:
extends: yolo_base
container_name: yolo
command: ["bash", "-lc", "source install/setup.bash && ros2 launch bot_yolo yolo.launch.py"]
restart: always
dev_yolo:
extends: yolo_base
container_name: dev_yolo
user: root
command: ["bash"]
web_server:
image: node:22-bullseye
working_dir: /app
volumes:
- ./frontend:/app
env_file:
- .env
web_server_builder:
extends: web_server
container_name: web_server_builder
network_mode: host
command: sh -c "npm ci && npm run build:oss"
web_server_dev:
extends: web_server
container_name: web_server_dev
network_mode: host
command: sh -c "npm install && npm run dev:oss"
stdin_open: true
tty: true
web_server_prod:
extends: web_server
container_name: web_server_prod
network_mode: host
environment:
- NODE_ENV=production
env_file:
- .env
command: npm run start
restart: unless-stopped