-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile
More file actions
104 lines (94 loc) · 3.18 KB
/
Copy pathDockerfile
File metadata and controls
104 lines (94 loc) · 3.18 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
FROM osrf/ros:jazzy-desktop-full
ENV DEBIAN_FRONTEND=noninteractive
ENV ROS_DISTRO=jazzy
# Base tooling + GUI (X11 + Wayland) + audio + RealSense + ROS game Python deps
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
cmake \
git \
curl \
wget \
python3-pip \
python3-rosdep \
python3-colcon-common-extensions \
x11-apps \
xauth \
x11-xserver-utils \
libxcb1 \
libxtst6 \
libxi6 \
libxcb-xfixes0-dev \
libxcb-shape0 \
libxcb-render0 \
libxcb-render0-dev \
libxcb-randr0 \
libxcb-randr0-dev \
libxcb-xtest0-dev \
libxcb-keysyms1-dev \
libxcb-image0-dev \
libxcb-icccm4-dev \
libxcb-sync-dev \
libxcb-xinerama0-dev \
libxcb-xkb-dev \
libxkbcommon-dev \
libxkbcommon-x11-dev \
libxcb-cursor0 \
libwayland-client0 \
libwayland-cursor0 \
libwayland-egl1 \
wayland-protocols \
qtwayland5 \
libqt5x11extras5 \
qt5-gtk-platformtheme \
libqt5gui5 \
libgl1 \
libegl1 \
libsdl2-2.0-0 \
libsdl2-mixer-2.0-0 \
libsndfile1 \
libasound2t64 \
portaudio19-dev \
python3-numpy \
ros-jazzy-rviz2 \
ros-jazzy-rqt-plot \
ros-jazzy-cv-bridge \
ros-jazzy-rosbag2 \
ros-jazzy-rosbag2-storage-mcap \
ros-jazzy-apriltag-msgs \
apt-transport-https \
lsb-release \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# RealSense SDK — new realsenseai.com repo (for ros-jazzy-realsense2-camera later).
# Skip librealsense2-dkms in Docker: container uses host kernel via privileged + /dev.
RUN apt-get update && apt-get install -y --no-install-recommends gnupg && \
mkdir -p /etc/apt/keyrings && \
curl -sSf https://librealsense.realsenseai.com/Debian/librealsenseai.asc | \
gpg --dearmor -o /etc/apt/keyrings/librealsenseai.gpg && \
echo "deb [signed-by=/etc/apt/keyrings/librealsenseai.gpg] https://librealsense.realsenseai.com/Debian/apt-repo $(lsb_release -cs) main" | \
tee /etc/apt/sources.list.d/librealsense.list > /dev/null && \
apt-get update && apt-get install -y --no-install-recommends \
librealsense2-utils \
librealsense2-dev \
ros-jazzy-realsense2-camera \
&& rm -rf /var/lib/apt/lists/*
# Extra Python deps for game/calibration. Use apt NumPy (headers for rosidl); OpenCV 4.13+ needs NumPy 2.
RUN pip3 install --no-cache-dir --break-system-packages --no-deps \
"opencv-contrib-python>=4.10.0,<4.13" && \
pip3 install --no-cache-dir --break-system-packages \
"pydantic>=2.9,<3" \
"pygame>=2.6.1,<3" \
"pyrealsense2>=2.57.7,<3" \
"pupil-apriltags>=1.0.4.post11,<2" \
"sounddevice>=0.5.5,<0.6" \
"websockets>=14.0"
RUN rosdep update
RUN mkdir -p /gressus/ros2_ws/src
COPY docker/entrypoint.sh /usr/local/bin/gressus-entrypoint.sh
COPY docker/ros-env.sh /usr/local/bin/gressus-ros-env.sh
COPY docker/ros-env.sh /etc/profile.d/gressus-ros.sh
COPY docker/gui-env.sh /usr/local/bin/gressus-gui-env.sh
RUN chmod +x /usr/local/bin/gressus-entrypoint.sh /usr/local/bin/gressus-ros-env.sh /etc/profile.d/gressus-ros.sh /usr/local/bin/gressus-gui-env.sh
WORKDIR /gressus/ros2_ws
ENTRYPOINT ["/usr/local/bin/gressus-entrypoint.sh"]
CMD ["bash"]