Skip to content
Snippets Groups Projects
Select Git revision
  • e822ef3053689c6fec9fda61e14ced5a285c2f2a
  • master default
2 results

a.out

Blame
  • 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"]