|
| 1 | +FROM osrf/ros:humble-desktop-jammy |
| 2 | + |
| 3 | +SHELL ["/bin/bash", "-c", "-o", "pipefail"] |
| 4 | + |
| 5 | +RUN echo "deb [trusted=yes] https://raw.githubusercontent.com/moveit/moveit2_packages/jammy-humble/ ./" \ |
| 6 | + | sudo tee /etc/apt/sources.list.d/moveit_moveit2_packages.list |
| 7 | +RUN echo "yaml https://raw.githubusercontent.com/moveit/moveit2_packages/jammy-humble/local.yaml humble" \ |
| 8 | + | sudo tee /etc/ros/rosdep/sources.list.d/1-moveit_moveit2_packages.list |
| 9 | + |
| 10 | +# Bring the container up to date to get the latest ROS2 humble sync on 01/27/23 |
| 11 | +# hadolint ignore=DL3008, DL3013 |
| 12 | +RUN apt-get update && apt-get upgrade -y && rosdep update |
| 13 | + |
| 14 | +# Install packages required to run the demo |
| 15 | +RUN apt-get install -y --no-install-recommends \ |
| 16 | + ros-humble-moveit \ |
| 17 | + ros-humble-moveit-resources |
| 18 | + |
| 19 | +# Create Colcon workspace and clone the needed source code to run the demo |
| 20 | +RUN mkdir -p /root/isaac_moveit_tutorial_ws/src |
| 21 | +WORKDIR /root/isaac_moveit_tutorial_ws/src |
| 22 | +RUN git clone https://github.com/PickNikRobotics/topic_based_ros2_control.git |
| 23 | +COPY ./ moveit2_tutorials |
| 24 | +WORKDIR /root/isaac_moveit_tutorial_ws |
| 25 | +# hadolint ignore=SC1091 |
| 26 | +RUN source /opt/ros/humble/setup.bash \ |
| 27 | + && apt-get update -y \ |
| 28 | + && rosdep install --from-paths src --ignore-src --rosdistro "$ROS_DISTRO" -y \ |
| 29 | + && rm -rf /var/lib/apt/lists/* |
| 30 | + |
| 31 | +# Use Fast DDS as middleware and load the required config for NVIDIA Isaac Sim. |
| 32 | +ENV RMW_IMPLEMENTATION=rmw_fastrtps_cpp |
| 33 | +RUN mkdir -p /opt/.ros |
| 34 | +COPY ./doc/how_to_guides/isaac_panda/.docker/fastdds.xml /opt/.ros/fastdds.xml |
| 35 | +ENV FASTRTPS_DEFAULT_PROFILES_FILE=/opt/.ros/fastdds.xml |
| 36 | + |
| 37 | +# Build the Colcon workspace for the user |
| 38 | +RUN source /opt/ros/humble/setup.bash && colcon build |
| 39 | + |
| 40 | +# Set up the entrypoint for both container start and interactive terminals. |
| 41 | +COPY ./doc/how_to_guides/isaac_panda/.docker/ros_entrypoint.sh /opt/.ros/ |
| 42 | +RUN echo "source /opt/.ros/ros_entrypoint.sh" >> ~/.bashrc |
| 43 | +ENTRYPOINT [ "/opt/.ros/ros_entrypoint.sh" ] |
0 commit comments