-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathDockerfile.base
86 lines (74 loc) · 2.75 KB
/
Dockerfile.base
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
ARG BASE_IMAGE=osrf/ros:humble-desktop
FROM $BASE_IMAGE
ARG DEBIAN_FRONTEND=noninteractive
ARG UID=1000
# User
RUN useradd -d /memristor -m \
-u $UID -U \
-s /usr/bin/bash \
-G dialout \
-c "Memristor Robotics" memristor && \
echo "memristor ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
# Essentials
RUN apt-get update && apt-get install --no-install-recommends -y -o Dpkg::Options::="--force-overwrite" \
ros-humble-navigation2 \
ros-humble-nav2-bringup \
ros-humble-rviz2 \
ros-humble-teleop-twist-keyboard \
ros-humble-dynamixel-sdk \
ros-humble-can-msgs \
ros-humble-ruckig \
ros-humble-laser-filters \
ros-humble-domain-bridge \
ros-humble-rmw-cyclonedds-cpp \
ros-humble-ros2-control \
ros-humble-ros2-controllers \
ros-humble-rqt-common-plugins \
ros-humble-webots-ros2 \
ros-humble-dynamixel-workbench-toolbox \
ros-humble-behaviortree-cpp \
libopencv-dev \
python3-pip \
python3-pil \
alsa \
libxshmfence1 \
libgtk-3-dev \
git \
git-lfs \
curl \
wget \
vim \
rsync \
dialog \
fuse
# Webots
RUN curl -L -o /tmp/webots.deb \
'https://github.com/cyberbotics/webots/releases/download/R2023b/webots_2023b_amd64.deb' && \
apt-get install -y /tmp/webots.deb && \
rm -f /tmp/webots.deb && \
mkdir -p /memristor/.config/Cyberbotics
# Groot
RUN curl -L -o /opt/Groot2.AppImge \
'https://s3.us-west-1.amazonaws.com/download.behaviortree.dev/groot2_linux_installer/Groot2-v1.5.2-x86_64.AppImage' && \
chmod +x /opt/Groot2.AppImge && \
ln -sf /opt/Groot2.AppImge /usr/bin/groot2
RUN python3 -m pip install scipy transforms3d
# HOTFIX: https://github.com/ros-controls/ros2_controllers/issues/482
RUN wget -O /tmp/diff_drive_controller.deb http://snapshots.ros.org/humble/2022-11-23/ubuntu/pool/main/r/ros-humble-diff-drive-controller/ros-humble-diff-drive-controller_2.12.0-1jammy.20221108.202153_amd64.deb && \
apt install -y --allow-downgrades /tmp/diff_drive_controller.deb && \
rm -f /tmp/diff_drive_controller.deb
# HOTFIX: https://github.com/ros-controls/ros2_control/pull/1960
RUN wget -O /tmp/hotfix.deb http://snapshots.ros.org/humble/2024-08-28/ubuntu/pool/main/r/ros-humble-hardware-interface/ros-humble-hardware-interface_2.43.0-1jammy.20240823.145349_amd64.deb && \
apt install -y --allow-downgrades /tmp/hotfix.deb && \
rm -f /tmp/hotfix.deb
# User config
COPY ./config/bashrc /tmp/bashrc
COPY ./config/Cyberobotics/. /memristor/.config/Cyberbotics/
COPY --chmod=755 ./config/setup.sh /usr/bin/
RUN cat /tmp/bashrc >> /memristor/.bashrc && \
rm -f /tmp/bashrc && \
mkdir -p /memristor/ros2_ws/src/mep3 && \
chown -R memristor:memristor /memristor
USER memristor
WORKDIR /memristor/ros2_ws
EXPOSE 31415