FROM ros:humble-ros-base-jammy ARG DEBIAN_FRONTEND=noninteractive # Set the working directory to /project WORKDIR /project/ # Update and install basic tools RUN apt-get update && apt-get upgrade -y RUN apt-get update && apt-get install -y --no-install-recommends git nano wget RUN apt-get update && apt-get install -y --no-install-recommends python3-pip RUN pip3 install --upgrade pip # Fix ros package building error RUN pip3 install --no-cache-dir "setuptools<=58.2.0" # Add ROS2 sourcing by default RUN echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc # Create ROS2 workspace for project packages RUN mkdir -p /project/dev_ws/src/ RUN cd /project/dev_ws/; colcon build RUN echo "source /project/dev_ws/install/setup.bash" >> ~/.bashrc # Copy modules COPY ./extras/include/ /RapidPoseTriangulation/extras/include/ COPY ./rpt/ /RapidPoseTriangulation/rpt/ COPY ./extras/ros/marker_publishers/ /RapidPoseTriangulation/extras/ros/marker_publishers/ COPY ./extras/ros/rpt_msgs/ /RapidPoseTriangulation/extras/ros/rpt_msgs/ COPY ./extras/ros/rpt3d_wrapper_cpp/ /RapidPoseTriangulation/extras/ros/rpt3d_wrapper_cpp/ # Link and build as ros package RUN ln -s /RapidPoseTriangulation/extras/ros/marker_publishers/ /project/dev_ws/src/ RUN ln -s /RapidPoseTriangulation/extras/ros/rpt_msgs/ /project/dev_ws/src/ RUN ln -s /RapidPoseTriangulation/extras/ros/rpt3d_wrapper_cpp/ /project/dev_ws/src/ RUN /bin/bash -i -c 'cd /project/dev_ws/; colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release' # Update ros packages -> autocompletion and check RUN /bin/bash -i -c 'ros2 pkg list' # Clear cache to save space, only has an effect if image is squashed RUN apt-get autoremove -y \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* WORKDIR /RapidPoseTriangulation/ CMD ["/bin/bash"]