# ============================================================ # ROV Autonomy Stack — ARM64 Container Image # Target: Raspberry Pi 5 running Ubuntu 24.04 LTS # Base: ROS2 Jazzy on Ubuntu 24.04 # ============================================================ FROM ros:jazzy-ros-base-noble # Set non-interactive apt installs ENV DEBIAN_FRONTEND=noninteractive # Install ROS2 dependencies and tools RUN apt-get update && apt-get install -y \ # ROS2 packages required by the stack ros-jazzy-mavros \ ros-jazzy-mavros-extras \ ros-jazzy-robot-localization \ ros-jazzy-cv-bridge \ ros-jazzy-image-transport \ # Python dependencies python3-pip \ python3-opencv \ # Build tools python3-colcon-common-extensions \ && rm -rf /var/lib/apt/lists/* # Install geographic datasets required by MAVROS RUN /opt/ros/jazzy/lib/mavros/install_geographiclib_datasets.sh # Create workspace directory WORKDIR /ros2_ws # Copy workspace source into image COPY src/ src/ # Build the workspace RUN /bin/bash -c "source /opt/ros/jazzy/setup.bash && \ colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release" # Copy and configure entrypoint COPY docker-entrypoint.sh /docker-entrypoint.sh RUN chmod +x /docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"] CMD ["ros2", "launch", "rov_bringup", "rov_full.launch.py"]