/
/
/
1FROM ros:jazzy-ros-base
2
3# Install dependencies
4RUN apt-get update && apt-get install -y --no-install-recommends \
5 # Build tools
6 build-essential \
7 cmake \
8 git \
9 # ROS2 packages
10 ros-jazzy-rviz2 \
11 ros-jazzy-rviz-common \
12 ros-jazzy-rviz-rendering \
13 ros-jazzy-rviz-ogre-vendor \
14 ros-jazzy-tf2 \
15 ros-jazzy-tf2-ros \
16 ros-jazzy-xacro \
17 ros-jazzy-robot-state-publisher \
18 # Gazebo packages
19 ros-jazzy-ros-gz \
20 ros-jazzy-ros-gz-bridge \
21 ros-jazzy-ros-gz-sim \
22 # Libraries
23 libeigen3-dev \
24 libnabo-dev \
25 libomp-dev \
26 # Qt5 for RViz plugins
27 qtbase5-dev \
28 && rm -rf /var/lib/apt/lists/*
29
30# Create workspace
31WORKDIR /ros2_ws
32COPY . src/fast_slam_project
33
34# Build workspace
35RUN . /opt/ros/jazzy/setup.sh && \
36 colcon build
37
38# Source workspace on container start
39RUN echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc && \
40 echo "source /ros2_ws/install/setup.bash" >> ~/.bashrc
41
42# Default command
43CMD ["bash", "-c", "source /ros2_ws/install/setup.bash && ros2 launch fast_slam_ros_core fast_slam_ros.launch.py"]
44