Select Git revision
Dockerfile 2.25 KiB
FROM ros:noetic-ros-core
RUN sed -i 's/^deb/deb [trusted=yes]/' /etc/apt/sources.list.d/ros1-latest.list
# update and install dependencies
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
python3-osrf-pycommon \
python3-catkin-tools \
build-essential \
protobuf-compiler \
libprotobuf-dev \
python3-rosdep
# update rosdep dependencies manually to speed up process
RUN apt-get install -y \
ros-noetic-gazebo-msgs \
libsdformat9-dev \
ros-noetic-gazebo-ros \
ros-noetic-xacro \
ros-noetic-tf2 \
ros-noetic-moveit-ros-planning-interface \
ros-noetic-franka-gripper \
ros-noetic-controller-manager \
ros-noetic-effort-controllers \
ros-noetic-gazebo-plugins \
ros-noetic-gazebo-ros-control \
ros-noetic-joint-state-controller \
ros-noetic-joint-state-publisher \
ros-noetic-joint-trajectory-controller \
ros-noetic-robot-state-publisher \
ros-noetic-tf \
ros-noetic-moveit-simple-controller-manager \
ros-noetic-moveit-core \
ros-noetic-moveit-ros-perception \
ros-noetic-moveit-visual-tools \
ros-noetic-controller-interface \
ros-noetic-hardware-interface \
ros-noetic-moveit-ros-move-group \
ros-noetic-moveit-fake-controller-manager \
ros-noetic-moveit-kinematics \
ros-noetic-moveit-planners-ompl \
ros-noetic-moveit-ros-visualization \
ros-noetic-joint-state-publisher-gui
RUN apt-get install -y \
libnng1 libnng-dev
ENV HOME /home/user
RUN useradd --create-home --home-dir $HOME user && chmod -R u+rwx $HOME && chown -R user:user $HOME
RUN rosdep init
USER user
RUN mkdir -p ${HOME}/catkin_ws/src/cgv_connector
COPY --chown=user:user . ${HOME}/catkin_ws/
RUN rosdep update
# temporary switch to root to be able to install the ROS package dependencies of the workspace
USER root
RUN rosdep install --from-paths ${HOME}/catkin_ws -i -y -r
USER user
RUN ls -al /home/user
WORKDIR ${HOME}/catkin_ws
RUN echo "#!/bin/bash\n\
source /opt/ros/noetic/setup.bash\\n\
if [[ -f " $HOME/catkin_ws/devel/setup.bash" ]];then source $HOME/catkin_ws/devel/setup.bash; fi\\n\
exec \"\$@\"\\n" > ${HOME}/entrypoint.sh
RUN chmod u+x ${HOME}/entrypoint.sh
RUN ${HOME}/entrypoint.sh catkin build
EXPOSE 6576/tcp
ENTRYPOINT ["/home/user/entrypoint.sh"]