-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
104 lines (91 loc) · 2.52 KB
/
Makefile
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
ROS_DISTRO := humble
ROS_PACKAGE := deepdrive
ROS_ROOT := /ros_ws
RUNTIME ?= nvidia
# RUNTIME=runc
GPU_FLAG ?= --gpus all
# GPU_FLAG
# on machine without nvidia gpu
# make dockersimshell RUNTIME=runc GPU_FLAG:=
rosdeps:
rosinstall_generator --deps --rosdistro ${ROS_DISTRO} ./src/${ROS_PACKAGE} > ${ROS_PACKAGE}.rosinstall
.PHONY: docker
docker:
docker build -t ${ROS_PACKAGE} .
.PHONY: dockershell
# dockershell:
dockershell: docker
docker run \
--network=host \
--runtime $(RUNTIME) \
-it \
--name deepdrive \
--rm \
--privileged \
$(GPU_FLAG) \
-e DISPLAY=${DISPLAY} \
-e PYTHONBUFFERED=1 \
-v /dev/:/dev/ \
-v /tmp:/tmp \
-v /proc/device-tree/compatible:/proc/device-tree/compatible \
-v /proc/device-tree/chosen:/proc/device-tree/chosen \
--device /dev/gpiochip0 \
--device /dev/snd \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
--mount source=${PWD}/,target=/ros_ws,type=bind \
-v ${PWD}/.cache/huggingface:/root/.cache/huggingface \
${ROS_PACKAGE}
# TODO: See if we need these
# -v /tmp/.X11-unix:/tmp/.X11-unix:rw \
# -v ${HOME}/.Xauthority:/root/.Xauthority:ro \
# -v ${PWD}/.session.yml:/root/.session.yml \
# -v ${PWD}/.tmux.conf:/root/.tmux.conf \
# -e JETSON_MODEL_NAME="JETSON_ORIN_NANO" \
.PHONY: dockersim
dockersim:
docker build -t ${ROS_PACKAGE}-sim -f Dockerfile.simulator .
.PHONY: dockersimshell
dockersimshell: dockersim
# xhost +local:docker
docker run \
--network=host \
--runtime $(RUNTIME) \
-it \
--name deepdrive-sim \
--rm \
--mount source=${PWD}/src,target=/ros_ws/src,type=bind \
--privileged \
$(GPU_FLAG) \
-e DISPLAY=${DISPLAY} \
-e PYTHONBUFFERED=1 \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp/deepdrive:/tmp \
-v "/tmp/.gazebo/:/root/.gazebo/" \
--device=/dev/bus/usb:/dev/bus/usb \
${ROS_PACKAGE}-sim
# Use this to develop on mac with docker
.PHONY: dockerdev
dockerdev:
docker build --platform linux/arm64/v8 -t ${ROS_PACKAGE}-dev -f Dockerfile.dev .
.PHONY: dockerdevshell
dockerdevshell: dockerdev
xhost +local:docker
docker run \
--platform linux/arm64/v8 \
--network=host \
-it \
--name deepdrive-dev \
-v ${PWD}:${ROS_ROOT}/ \
--privileged \
-e DISPLAY=${DISPLAY} \
-e PYTHONBUFFERED=1 \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-v /tmp \
-v "/root/.gazebo/" \
--device=/dev/bus/usb:/dev/bus/usb \
${ROS_PACKAGE}-dev bash
# Host networking not currently working for x11 (novnc)
# --network=host